Пример постоянной работы с конкретным оператором
Я хотел бы сделать запрос LIKE в persistent, я использую sqlite. Книга Yesod дает пример использования raw SQL для этого, но говорит:
вы можете выразить оператор LIKE непосредственно в нормальном синтаксисе из-за добавлена функция Persistent 0.6, которая позволяет использовать Операторы
Я не мог найти пример этого. Будет ли у кого-нибудь пример того, что означало бы использовать конкретный оператор, такой как LIKE с selectList
или что-то эквивалентное?
Спасибо!
Ответы
Ответ 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"] []