web-dev-qa-db-ja.com

SLICKでSQL「LIKE」演算子を使用する方法

多分ばかげた質問。しかし、私は今のところ答えを見つけていません。では、SQLの「LIKE」演算子を[〜#〜] slick [〜#〜]でどのように表現しますか?

27
wassertim

いつものように!

val query = for {
  coffee <- Coffees if coffee.name like "%expresso%"
} yield (coffee.name, coffee.price)

次のようなSQLを生成します

SELECT name, price FROM coffees WHERE NAME like '%expresso%';
35
Faiz

これが私がそれを機能させる方法です:

_// argMap is map of type [Str, Str]
val query = for {
    coffee <- coffees if (
      argMap.map{ case (k,v) =>
        metric.column[String](k) like s"%${v}%"
      }.reduce(_ && _)
    )
  } yield(coffee.name)
_

そして、dbを使用してこれを実行できます:val res = db.run(query.result)

もちろん、resはここでの未来であり、実際の結果を得るにはawaitを使用する必要があります。

1