开发过程中,会遇到这样的情况:判断两个以","号分割或者"-"分割的字符串是否含有交集,那么就可以使用MySQL正则匹配的方式进行判断,举例如下:
表数据如下:
| id | join_person | join_time |
| 1 | 张三 | 2019-09-23 22:07:55 |
| 2 | 张三丰,李四 | 2019-09-23 22:07:55 |
| 3 | 李四,王五 | 2019-09-23 22:07:55 |
我们要判断join_person列数据与'王五,赵六'有交集的数据,那么就可以使用REGEXP进行正则匹配判断,SQL语句如下:
select * from test1 where join_person REGEXP REPLACE('王五,赵六',',','|');
结果如下:
| id | join_person | join_time |
| 3 | 李四,王五 | 2019-09-23 22:07:55 |
我们要判断join_person列数据与'张三,王二'有交集的数据,那么就可以使用REGEXP进行正则匹配判断,SQL语句如下:
select * from test1 where join_person REGEXP REPLACE('张三,王二',',','|');
结果如下:
| id | join_person | join_time |
| 1 | 张三 | 2019-09-23 22:07:55 |
| 2 | 张三丰,李四 | 2019-09-23 22:07:55 |
哎,怎么张三丰也匹配出来了呢?这个时候,我们只需要稍改一下SQL就可以解决了,SQL语句如下:
select * from test1 where CONCAT(',',join_person,',') REGEXP CONCAT(',(',REPLACE('张三,王二',',','|'),'),');
结果如下:
| id | join_person | join_time |
| 1 | 张三 | 2019-09-23 22:07:55 |
这么实用的正则匹配,赶快实践起来吧!
本文介绍如何使用MySQL的正则表达式功能来判断两个由逗号或破折号分隔的字符串是否有交集,通过具体实例展示了如何进行精确匹配,避免误匹配的问题。

2220

被折叠的 条评论
为什么被折叠?



