开发中不常见的 MySql 函数(持续更新)

394 阅读1分钟

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