2

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

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

我的查询目前是这样的:

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

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

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

4

1 回答 1

0

LIKE您可以使用运算符与如下函数组合来部分匹配字符串CONCAT

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

LOWER您可以使用这样的函数不区分大小写地匹配字符串:

lower(name) = lower(?2)

您还可以将两者结合起来以匹配部分和不区分大小写company的部分:name

return list("lower(company) like concat('%', lower(?1), '%') and lower(name) like concat('%', lower(?2), '%')", company, name);
于 2021-05-18T23:28:05.333 回答