PanacheQuery:运算符允许不区分大小写的查询

时间:2020-07-17 03:27:36

标签: quarkus-panache

我正在尝试创建一个具有以下2个条件的查询:

  1. 应该是部分字符串匹配,而不是完全匹配
  2. 应该不区分大小写

我的查询当前是这样的:

return list("company=?1 and name?=2", company, name);

但是,这不会进行部分字符串匹配。有运营商吗?

为清楚起见,假设数据库包含peter, Peter, peTeR,对name=peter的查询应返回所有3个名称。

1 个答案:

答案 0 :(得分:0)

您可以使用 LIKE 运算符结合 CONCAT 函数来部分匹配字符串,如下所示:

company like concat('%', ?1, '%')

您可以使用 LOWER 函数不区分大小写匹配字符串,如下所示:

lower(name) = lower(?2)

您还可以将两者结合起来以不区分大小写地部分匹配 companyname

return list("lower(company) like concat('%', lower(?1), '%') and lower(name) like concat('%', lower(?2), '%')", company, name);