いくつかのフィルターを使用してデータベースから選択しようとしています。コード:
// name is List("Denis", "Semen")
val query = name.map(_ + "%").mkString(" OR name LIKE ")
sql"SELECT * FROM phonebook WHERE name LIKE ${query+"%"}"
.query[Contact]
.to[List]
.transact(tr)
結果クエリは次のようになります。SELECT * FROM phonebook WHERE name LIKE Denis% OR name LIKE Semen%
そして、私は何も得ません。SELECT の名前が 1 つだけの場合にのみ、何かを取得します: SELECT * FROM phonebook WHERE name LIKE Denis%
。
私もこれを試しました:
val query = name.map("'" + _ + "%'").mkString(" OR name LIKE ") // 'denis%' OR NAME LIKE 'benis%'
結果クエリは次のようになりますSELECT * FROM phonebook WHERE name LIKE 'Jhon%' OR name LIKE 'Lena%'
が、Doobie では を使用する必要がない'
ため、1 つの名前でも何も返されません: SELECT * FROM phonebook WHERE name LIKE 'Jhon%'
。