MYSQL关于find_in_set函数的使用详解和like的区别之处( 二 )


SELECT * FROM users WHERE limits LIKE '%2%';

MYSQL关于find_in_set函数的使用详解和like的区别之处

文章插图
 
这样第二条数据不具有权限'2'的用户也查出来了,不符合预期 。下面利用mysql 函数find_in_set()来解决 。
SELECT * FROM users WHERE FIND_IN_SET(2,limits);
MYSQL关于find_in_set函数的使用详解和like的区别之处

文章插图
 
这样就能达到我们预期的效果,问题就解决了!
注意:mysql字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以","分割开 。
 
总结:like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果 。




推荐阅读