例如 数据库中存在这样的一个数组数据,这里我们以逗号,为分隔符:示例如下:
var_column : 'a,b,c,d'
如果我们查询匹配'b'的sql语句:
select * from table where FIND_IN_SET('b',var_column ) ;
多个的话,可以加 or 关键字 累加 查询 。
但假如我们要查询匹配 b 和 c 都包含的sql语句呢?
这时我们将可以采用正则表达式的办法:使用关键字:REGEXP
select * from table where var_column REGEXP '(b|c)'
在以上呢,如果 含有bx 或 cx 的字段,就会把bx 或 cx 查询出来
这个时候,灵活运用正则表达式: 例如 : [^a-z]+[b|c][^a-z]+
整理出来: 因为 分隔符是 , 所以可以写成: CONCAT(',',var_column,',') REGEXP '[^a-z]+[b|c][^a-z]+'
同理,根据需要匹配的字符串不同,对应的正则表达式就不同。