select * from table where find_in_set(str,strlist);
find_in_set()函数中,第一个参数是要查询的字符串或id,第二个参数是包含id的以“,”英文逗号分割的字符串,例如:1,2,3,4,5;
find_in_set()和like的区别
在操作mysql数据库时,想要在一个以逗号分割的多个id组成的varchar字段中查询到指定id,用like查询时,如果查询这样一个表
id | cateid |
---|---|
1 | 1,2,3,6,4,5 |
2 | 11,12,13,14 |
3 | 110,220,130,410 |
假如用like查询cateid中属于分类2的数据,'%2%',就会将这三条数组全部查询出来,因为它们的字符串中都包含'2',而使用find_in_set()就只查询到id为1的数据,从而得到我们想要的结果。
find_in_set顾名思义,find查找in在什么什么里面set有‘一组/集’的意思。
find_in_set的第二个参数必须使用英文逗号分隔id。
总结:like是广泛的模糊匹配/查询,被查询的字符串中没有分隔符也可以查询,find_in_set是精确的匹配,字符串中必须有英文逗号','做分割。
0条评论