如何使用SORM和PostgreSQL在数据库中进行非敏感搜索?
我试过whereLike
:
DB.query[User].whereLike("fullname", "%" + term + "%").fetch()
执行区分大小写的搜索。 PostreSQL支持ILIKE
运算符,但在SORM DSL API中找不到ILIKE
函数。
我也试过了whereRegex
:
DB.query[User].whereRegex("fullname", term).fetch()
这会返回错误:
org.postgresql.util.PSQLException: ERROR: syntax error at or near "REGEXP"
Acording文档PostgreSQL没有使用REGEXP
运算符,它使用〜(tilda)运算符。据我所知,这会导致错误。我想用regexp执行类似的操作:
SELECT "fullname" FROM "user" WHERE "fullname" ~ 'john';
谢谢!
答案 0 :(得分:-1)
正在使用Postgres的正则表达式是一个错误,现在已在0.3.17版本中修复。感谢您发现。
关于区分大小写,看起来像Postgres也使用不同的运算符来表示正则表达式。嗯。看起来目前没有办法与Postgres这样做。 SORM需要引入适当的操作员,欢迎提供。