MySQL多项模糊查询

Posted wzb的QQ空间

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL多项模糊查询相关的知识,希望对你有一定的参考价值。

最近有个需求,就是要根据搜索框里面的关键字,找到符合条件的数据。

如果是单个条件的话,其实就是一个普通的select语句。

但是需求是这个关键字,要在id,desc,step等多个字段模糊查找。

然后最直观的一个思路肯定就是:

select * from t_bug where `id` like  %key% or `desc` like %key%
or `step` like %key%

对一条记录,要对id、desc、step三项都判断一下符不符合key。

缺点:需求只有三个记录,如果是多个记录的话,那就效率会很慢,而且修改这个语句也很复杂。

 

一个更好的方法是,把需要模糊查询的各个字段,用concat拼接起来,成为一整个字符串,再用like来匹配。

SELECT * FROM t_bug WHERE  CONCAT(`desc`,`step_to_string`,`bug_id`) LIKE %key%

 

我在项目中就是这么做的,导师也认为没什么大问题:

 

 

各位有什么更好的方法,也可以交流一下哈。

以上是关于MySQL多项模糊查询的主要内容,如果未能解决你的问题,请参考以下文章

mybatis模糊查询

Mysql模糊查询,按相似度排序

mysql的模糊查询

MySQL简单实现多字段模糊查询

MySQL联合查询及模糊查询

java mysql模糊查询有问题 请纠错