mysql 逗号分隔查询
FIND_IN_SET(str,strlist)
str为要查询的字符串;
strlist需是以逗号分隔的字符串;
第一个参数不可以有(',');
查询有结果则返回记录行,没有则为空
例:
SELECT * from test where FIND_IN_SET('3',strlist);
strlist为要查询的字段,'3'为要查询的数据
比如strlist的数据有(2,3,4),(5,13,23),(7,36,33),(3)
则查到的数据为第一条和最后一条
它不同于 like 模糊查询,它是以“,”来分隔值
like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于或等于like查询的结果。
FIND_IN_SET还可以用来替代in的功能,如:
SELECT * from test where FIND_IN_SET(id,'2,5,3,9');
/* 等同于 */
SELECT * from test where id in('2,5,3,9');