mysql中FIND_IN_SET函数
mysql中FIND_IN_SET函数一、语法
FIND_IN_SET(str,strlist)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录
参数说明
str: 要查询的字符串
strlist :字段名 参数以”,”分隔 如 (1,2,6,8)
二、FIND_IN_SET函数实例
1、查出所有拥有1这个权限的所有用户的信息
用户表(user)中的一个字段(purview)代表该用户的权限,将用户的所有权限id存入此字段。比如有:1,2,3,4,5这样的五个权限。
select * from user where find_in_set('1',purview);
2、test表中有如下字段及值
(1)、查询area中包含”1″这个参数的记录
SELECT * from test where FIND_IN_SET('1',area)
结果
(2)、查询btype字段中包含”15″这个参数的值
SELECT * from test where FIND_IN_SET('15',btype)
结果
(3)、查询btype字段中包含”5″这个参数的值
SELECT * from test where FIND_IN_SET('5',btype)
结果
返回值为null,因为btype中没有”5”这个值,它不同于 like 模糊查询,它是以“,”来分隔值
三、FIND_IN_SET和like的区别
1、like是广泛的模糊匹配,字符串中没有分隔符
2、Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。