前言
mysql在8.0版本支持正则表达的方法有了丰富,具体如下:
本文重点举了regexp几个例子供参照。也是因为现在用的库只支持这个方法。
https://dev.mysql.com/doc/refman/8.0/en/regexp.html
规则语义
语法
Column regexp 表达式
实践
select * from vin_code_temp where vehicle_model REGEXP ‘([0-9]\.[0-9]T)’ ,查询出包含‘5.0T’ 这种格式的数据。
SELECT * from vin_code_temp where displacement REGEXP ‘^[5-9]\\.[0-9](T|L)’;
需要注意‘.’是特殊字符,要转译之后才能匹配,通过’\\’进行转译。
总结
Mysql的正则表达式同其他的体系的使用没有太大差异,有两点要关注:
1、 特殊字符的转译
2、 相反的查询可以用not regexp
3、 Regexp 匹配到返回1 未匹配到返回0 如果想获取匹配到的值,需要另行处理。
Mysql 8.0版本提供了REGEXP_SUBSTR,可以去官方参照:
https://dev.mysql.com/doc/refman/8.0/en/regexp.html