Mybatis多个字段模糊匹配同一个值的案例

这篇文章主要介绍了Mybatis多个字段模糊匹配同一个值的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

需求:

搜索框中可输入手机号,姓名,地址查询,后台需要对一个框中的多个字段做匹配查询。

搜索

可以在sql语句中做拼接条件查询:

  AND CONCAT(r.name,a.name,a.phone,a.addr_detail) LIKE '%' #{condition} '%' 

补充知识:在Mybatis xml使用mysql数据库进行多字段模糊查询(Like)

在mysql中使用Like进行一些简单轻量级的查询,并不需要考虑太多效率问题。

一、Like单字段查询比较简单。

没有特殊要求的话,直接使用%关键字%就进行左右匹配查询

 .....  ...  SELECT c.* FROM contacts c WHERE c.delete_time IS NULL  AND c.name LIKE concat('%',#{keyWord},'%')}  ORDER BY c.create_time DESC  

2、使用concat将多个字段拼接之后在进行模糊查询,相比第一种更推荐第二种,执行效率更好

 .....  ...  SELECT c.* FROM contacts c WHERE c.delete_time IS NULL  AND CONCAT(IFNULL(c.name,''),IFNULL(c.mobile,''),IFNULL(c.telephone,'')) LIKE concat('%',#{keyWord},'%')}  ORDER BY c.create_time DESC