PSQL 使用 Exposed 进行不区分大小写的搜索

PSQL Case insensitive search using Exposed

我们如何在 postgres sql 数据库上使用 Exposed(Kotlin) 进行不区分大小写的搜索?

SELECT users.id, users.name, users.created_at, users.updated_at FROM users 
WHERE users.name iLIKE '%aaa%'

like个运算符。我没有看到 ilike 运算符。我应该在查询字段中使用小写字母吗?

ILIKE 是 PostgreSQL 特有的函数,目前在 Exposed 中不支持,但是你可以自己定义它:

class ILikeOp(expr1: Expression<*>, expr2: Expression<*>) : ComparisonOp(expr1, expr2, "ILIKE")

infix fun<T:String?> ExpressionWithColumnType<T>.ilike(pattern: String): Op<Boolean> = ILikeOp(this, QueryParameter(pattern, columnType))