mysql中搜索功能的几种实现方式:like,in,find_in_set()

mysql中搜索功能的几种实现方式:like,find_in_set()

在项目中,通常用的搜索都是like模糊搜索,like可以解决大部分搜索问题。

但是如果想要在“1,2,3,4,5,9,11,13,12”中只搜索出“1”,则like无法实现。只能在把存储的数据改为“,1,2,3,4,5,9,11,13,12,”,前后多加逗号,这要给数据存储增加了麻烦。

这个时间可以考虑用in()来解决,但根据in的用户,in()里面的集合必须是常量,所以也无法实现。

所以这个时候只能使用find_in_set()来解决。

FIND_IN_SET(str,strList)

  • str 要查询的字符串

  • strList 字段名,参数以“,”分隔,如(1,2,6,8)

  • 查询字段(strList)中包含的结果,返回结果null或记录。

用法:select * from tab where FIND_IN_SET(1,字段) 即可。 字段里面存储 1,2,3,4,5,9,11,13,12 数据

图片.png

查询语句

SELECT * from v5_crm_thread where FIND_IN_SET('1',zhusu_ids)

查出结果:

图片.png



图片.png

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。