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

标签 haskell yesod

我想持久地做一个 LIKE 查询,我正在使用 sqlite。 yesod 书提供了一个使用原始 SQL 执行此操作的示例,但说:

you can express a LIKE operator directly in the normal syntax due to a feature added in Persistent 0.6, which allows backend-specific operators



不过,我找不到这样的例子。有人可以举一个例子来说明使用像 LIKE 这样的特定运算符和 selectList 的含义吗?或等效的东西?

谢谢!

最佳答案

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

关于haskell - 具有后端特定运算符的持久性示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11048143/

相关文章:

haskell - Yesod 可以使用哪个 Websockets 库?

macos - cabal install ...失败 - osx - 许多不满意的包

postgresql - Yesod persistent-postgresql rawSql 查询与列列表通配符产生语法错误

haskell - 如何在 Yesod 中为外键定义应用表单上的字段?

haskell - Haskell 发生了怎样的变化?

haskell - 无法将类型 `[]' 与 `IO' 匹配——Haskell

haskell - Yesod开发cpu开销

haskell - 我想将 Lucid 添加到 Yesod 的 defaultLayout 中

haskell - 如何将 map 与从 getLine 获取的字符串一起使用?[Haskell]

haskell - haskell 中的箭头和函数有何不同?