使用PostgreSQL在SORM中进行非敏感搜索

时间:2015-03-03 17:54:20

标签: regex postgresql sql-like sorm

如何使用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';

谢谢!

1 个答案:

答案 0 :(得分:-1)

正在使用Postgres的正则表达式是一个错误,现在已在0.3.17版本中修复。感谢您发现。

关于区分大小写,看起来像Postgres也使用不同的运算符来表示正则表达式。嗯。看起来目前没有办法与Postgres这样做。 SORM需要引入适当的操作员,欢迎提供。