关于模糊匹配多个字段
需求:前端一个输入框要匹配多个数据库字段。
网上找到的方法是:
select * from table where 1=1 and is_delete = 0
<if test="keyword !=null ">
name like CONCAT('%','#{keyword}','%') OR
age like CONCAT('%','#{keyword}','%')
</if>
但是这里会有一个问题,就是因为用来or做条件查询导致 is_delete= 0 好像失效了,会把已经删除了数据也查出来。
看来不能用or做条件查询。
解决办法:
select * from table where 1=1 and is_delete = 0
<if test="keyword !='' and keyword !=null">
<bind name="pattern" value="'%' + keyword+ '%'"/>
and CONCAT(name,age) like #{pattern}
</if>
这样就解决一个字段模糊匹配数据字段了~~