1

如何使用 SORM 和 PostgreSQL 在数据库中进行非敏感搜索?我试过whereLike

DB.query[User].whereLike("fullname", "%" + term + "%").fetch() 

这将执行区分大小写的搜索。PostreSQL 支持运算符,但在 SORM DSL API 中ILIKE没有找到函数。ILIKE

我也试过whereRegex

DB.query[User].whereRegex("fullname", term).fetch()

这将返回一个错误:

org.postgresql.util.PSQLException: ERROR: syntax error at or near "REGEXP"

根据文档 PostgreSQL 不使用REGEXP操作符,它使用 ~ (tilda) 操作符据我了解,这会导致错误。我想用正则表达式执行这样的事情:

SELECT "fullname" FROM "user" WHERE "fullname" ~ 'john';

谢谢!

4

1 回答 1

-1

正则表达式在 Postgres 中不起作用是一个错误,现已在 0.3.17 版中修复。感谢您发现这一点。

关于区分大小写,看起来 Postgres 对正则表达式也使用了不同的运算符。嗯。看起来目前没有办法用 Postgres 做到这一点。SORM 需要引入合适的算子,欢迎贡献。

于 2015-03-04T09:34:08.630 回答