mysql查询某字段中以逗号分隔的字符串的方法

您所在的位置:网站首页 mysql横向拆分 mysql查询某字段中以逗号分隔的字符串的方法

mysql查询某字段中以逗号分隔的字符串的方法

2023-09-15 21:01| 来源: 网络整理| 查看: 265

需求:人员表中有人员角色user_type字段,一个人可以有多个角色,user_type存的是以逗号分隔的字符串,现在要筛选出多个角色的人员信息 人员表 例如:现在筛选出user_type中含1和2的人员列表 方法一: 1、mysql查询

SELECT user_name, user_type FROM user WHERE find_in_set('1', user_type) OR find_in_set('2', user_type)

2、程序里mybatis可以这样写 传参:List 类型 userTypeList:[1,2]

SELECT user_name,user_type FROM user 1=1 find_in_set(#{id}, user_type)

方法二: 1、mysql查询

SELECT user_name, user_type FROM user WHERE 1=1 AND CONCAT(',', user_type, ',') REGEXP '(,2,)|(,1,)'

(,2,)作为一个整体查询,这样处理是因为REGEXP不能根据逗号 分隔筛选,会查出来所有带2的角色,如:21

2、程序里写法 传参:String类型 userType: “1,2”

SELECT user_name,user_type FROM user 1=1 AND CONCAT(',', user_type, ',') REGEXP (CONCAT('(,', REPLACE(#{userType},',',',)|(,'), ',)'))


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3