MySQL find_in_set()函数的使用
1 |
SELECT * from 表名 where FIND_IN_SET(查找的字符,字段名或者被查找的字符串) |
find_in_set()和like的区别:
主要的区别就是like是广泛的模糊查询,而 find_in_set() 是精确匹配,并且字段值之间用‘,’分开。
现在想查询拥有角色编号为2的用户,用like关键字查询:
1 |
SELECT userid,username,userrole 角色 FROM `user` WHERE userrole LIKE '%2%'; |
结果:
用 find_in_set() 查询:
1 |
SELECT userid,username,userrole 角色 FROM `user` WHERE find_in_set('2',userrole) |
结果:
显然用 find_in_set() 查询得到的结果才是我们想要的结果。所以他俩的
主要的区别就是like是广泛的模糊查询;而find_in_set()是精确匹配,并且字段值之间用‘,’分开,Find_IN_SET查询的结果要小于like查询的结果。