1、FIND_IN_SET(s1,s2)
作用:返回字符串s1在集合s2(s2是形如: "a,b,c,d"的字符串)中存在的位置。当在s2中找不到s1时,返回0。
例如:
SELECT FIND_IN_SET("c", "a,b,c,d,e"); =>结果为3
SELECT FIND_IN_SET("p", "a,b,c,d,e"); =>结果为0
假如有user_info:
| id | user_name | role_set |
|---|---|---|
| 1 | 张三 | admin,employee,leader |
| 2 | 李四 | leader,admin |
| 3 | 王五 | employee,leader |
SELECT id, user_name, FIND_IN_SET("admin", role_set) > 0 as isAdmin FROM user_info; => 查询用户表(user_info),并返回所有用户的用户id(id)、用户名(user_name)、角色是否是管理员(isAdmin),结果如下:
| id | user_name | isAdmin |
|---|---|---|
| 1 | 张三 | true |
| 2 | 李四 | true |
| 3 | 王五 | false |
SELECT id, user_name, role_set FROM user_info where FIND_IN_SET("admin", role_set) > 0; => 查询用户表(user_info),并返回角色是管理员的用户id(id)、用户名(user_name),结果如下:
| id | user_name | role_set |
|---|---|---|
| 1 | 张三 | admin,employee,leader |
| 2 | 李四 | leader,admin |