For example, I want to create the following query:
SELECT c.* FROM Coffees c WHERE c.name IN ('robusta', 'arabica')
My attempt failed:
val cnames = List("robusta", "arabica") sql""" SELECT c.* FROM Coffees c WHERE c.name IN ${cnames} """ could not find implicit value for parameter pconv: scala.slick.jdbc.SetParameter[List[String]]
Is it possible to somehow use in
clause in Slick
plain sql queries?
The type safe "lifted embedding" API supports this as well:
val ids = List(1,2,3) val q = for { f <- Foo if f.id inSet ids // ids is not bound }
slick.typesafe.com/doc/1.0.1/api/index.html#scala.slick.lifted.ColumnExtensionMethods
Although it's not safe for SQL injection, you can use #$
interpolator:
val ids = idList.mkString("'", "','", "'") val q = sql"""select name from mytable where id in (#$ids)"""
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With