的持久性实施例与特定于后端的操作者(Example of persistent with backe

2019-09-18 03:19发布

我愿做一个LIKE查询的执着,我使用的SQLite。 该耶索德书中给出了使用原始SQL做到这一点的例子,但是他说:

你可以表达在正常语法直接LIKE运算符由于持续0.6增加了一个功能,它允许特定于后端的运营商

我找不到这样一个例子,虽然。 会有人有这将意味着什么使用特定的运营商像LIKE用一个例子selectList或等价的东西?

谢谢!

Answer 1:

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


文章来源: Example of persistent with backend-specific operator
标签: haskell yesod