我正在尝试创建一个具有以下2个条件的查询:
我的查询当前是这样的:
return list("company=?1 and name?=2", company, name);
但是,这不会进行部分字符串匹配。有运营商吗?
为清楚起见,假设数据库包含peter, Peter, peTeR
,对name=peter
的查询应返回所有3个名称。
答案 0 :(得分: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);