mysql查询某字段中以逗号分隔的字符串的方法 |
您所在的位置:网站首页 › mysql横向拆分 › mysql查询某字段中以逗号分隔的字符串的方法 |
需求:人员表中有人员角色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 |