具有后端特定运算符的持久性示例

时间:2012-06-15 09:36:27

标签: haskell yesod

我想在持久化中执行LIKE查询,我正在使用sqlite。 yesod书给出了一个使用原始SQL来做的例子,但是说:

  

由于a,您可以使用正常语法直接表示LIKE运算符   Persistent 0.6中添加的功能,允许后端特定   运营商

但是,我找不到一个例子。有人会举例说明使用像LIKE这样的特定运算符与selectList或等价的东西意味着什么?

谢谢!

1 个答案:

答案 0 :(得分:7)

我知道我以前用过它,但我不记得在哪里。无论如何,一个简单的例子(不是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"] []