Mysql 精确查询是否字段中包含某个字符串
Posted 西贝小小凤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 精确查询是否字段中包含某个字符串相关的知识,希望对你有一定的参考价值。
想到是否包含,就想起来in,like查询了,先说一下这俩的区别,这是表字段和数据
Like查询
首先可能用的最多的LIKE 模糊查询,这样的数据不太精确,如果姓名有 “西贝小小凤1,西贝小小凤2” 这样的也会查出来,数据不太准确
select * from table where field like \'%西贝小小凤%\'
查询结果
总结:Like模糊查询,对字符没有特殊限制,但是查询不精确
IN查询
select * from table where field in(\'西贝小小凤\',\'西贝\',\'小小凤\')
查询结果:
总结:in查询,必须完全匹配,字段里面包含字符串也不可以
find_in_set查询
最后大佬出马,find_in_set,这个比较特殊,数据库保存的格式必须是以","分割的,查询比较精确
总结:find_in_set 是精确查询,字段值以英文”,”分隔
我最近用哪个UNION ALL多个表连接查询数据,发现在每条sql里面写find_in_set不管用,最后发现需要这么写才行
select * from ( select a.`id` id,a.`power` power from table1 a UNION ALL select b.`id` id,b.`power` power from table2 b UNION ALL select c.`id` id,c.`power` power from table3 c ) t WHERE find_in_set(\'西贝小小凤\', t.power);
要这么用哈,总觉得自己会mysql,但是很多东西好像都不会啊啊啊啊啊啊,生活的变数太多,珍惜现在!!
以上是关于Mysql 精确查询是否字段中包含某个字符串的主要内容,如果未能解决你的问题,请参考以下文章