MySQL:正则匹配两个字符串含有交集

开发过程中,会遇到这样的情况:判断两个以","号分或者"-"分割的字符串是否有交集,那么就可以使用MySQL正则匹配的方式进行判断,举例如下

1、用户表:

 需要判断user_name列与'李四'有交集的数据,那么就可以使用REGEXP进行正则匹配判断,SQL语句如下:

select * from sys_user where user_name REGEXP REPLACE('李四',',','|');

 结果如下:

 

我们要判断user_name列数据与'张三,赵五'有交集的数据,那么就可以使用REGEXP进行正则匹配判断,SQL语句如下:

select * from sys_user where user_name REGEXP REPLACE('张三,赵五',',','|');

 

发现“张三三”一列也筛选了出来,需要修改成

select * from sys_user_copy1 where CONCAT(',',user_name,',') REGEXP CONCAT(',(',REPLACE('张三,赵五',',','|'),'),')  
 

 结果如下:

 

你可能感兴趣的:(mysql)