regexp 应用

今天同事拿出个小栗子
regexp 应用_第1张图片
1 如果用like的话 1,22 的情况会被字符串2匹配到这样会有问题
这里需要用concat将uids处理下 比如第一条处理成,1,2,3, 的形式 去模糊匹配 ‘%,1,%’
当然like这种模糊匹配不太建议使用

2 regexp 用法
单个值 :REGEXP ‘(^|,)(需要找的值)(,|$)’

多个值: REGEXP ‘(^|,)(第一个值|第二个值)(,|$)’

多个中间需要用 | 隔开
搜索了一堆资料找到了个好办法 要匹配的字符串可以转化成1|5|6的形式 这样一步可以到位
where(‘uids’,‘regexp’,‘(^|,)(‘1|5|6’)(,|$)’)

3 find_in_set 也可以实现
SELECT * FROM table_name WHERE FIND_IN_SET(‘1’,uids);

可以这么写
 FIND_IN_SET('11',uids) OR FIND_IN_SET('3',uids);

你可能感兴趣的:(数据库)