mysql 逗号分隔查询

  • Jesse
  • 2016-05-13 10:36:00
  • 471

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');