12

永続的にLIKEクエリを実行したいのですが、sqliteを使用しています。yesodの本は、生のSQLを使用してそれを行う例を示していますが、次のように述べています。

Persistent 0.6で追加された機能により、通常の構文でLIKE演算子を直接表現できます。これにより、バックエンド固有の演算子が可能になります。

しかし、その例は見つかりませんでした。誰かがLIKEのような特定の演算子selectListまたは同等のものを使用することの意味の例を持っていますか?

ありがとう!

4

1 に答える 1

9

以前使ったことがあるのは知っていますが、どこにあるのか思い出せません。とにかく、簡単な例(GHCでチェックされていない、お詫び)は次のようになります。

selectList [Filter PersonName (Left $ PersistText "%Michael%") (BackendSpecificFilter "ILIKE")] []

明らかに、いくつかのヘルパー関数を作成できます。例:

icontains field val = Filter field (Left $ PersistText $ T.concat ["%", val, "%"]) (BackendSpecificFilter "ILIKE")
selectList [Personname `icontains` "Michael"] []
于 2012-06-17T07:33:30.807 に答える