无法确定 SQL 中的数据类型 Like operator with params

Could not determine data type in SQL Like operator with params

我正在尝试编写一个“select”,在“like”运算符中包含一个参数。这是我的代码:

val result = connection.queryWithParamsAwait(
    "select * from users where username like '%?%'",
    jsonArrayOf(query)
)

但是我收到这个错误:

could not determine data type of parameter

我怀疑是引号引起的,所以我也试过了:

val result = conn.queryWithParamsAwait(
    "select * from users where username like ?",
    jsonArrayOf("\'%$query%\'")
)

它没有崩溃,但是 returns 没有结果,它应该。

我正在使用这个客户端:https://github.com/vert-x3/vertx-mysql-postgresql-client

连接通配符和参数:

like '%' || ? || '%'

您可能会发现正则表达式更方便:

where username ~ ?

正则表达式匹配字符串中的任何位置,因此您不需要在开头和结尾使用通配符。

如果 ? 仅由数字和字母组成 - 也就是说,如果它没有特殊的正则表达式字符,则没有问题。但是,这可能是您拥有正则表达式的强大功能。