mysql使用正则表达式匹配查询的例子

发布时间:2019-08-04编辑:脚本学堂
本文介绍下,在mysql中使用正则表达式,进行相关匹配查询的例子,有需要的朋友,参考下吧。

例如,在一个字段中查询出包含两个连续的‘0’的数据。

举例:
啊啊00啊啊 。正确
啊啊000爱爱爱。错误

执行如下的查询:
 

复制代码 代码示例:

mysql> select * from stud ;
+----+------------+
| id | name       |
+----+------------+
| 1 | 小命00111 |
| 2 | 小命00011 |
| 3 | 邵志刚0011 |
+----+------------+

mysql> select * from stud t1 where (SELECT name REGEXP '^[^0]*0{2}[^0]*$') = 1 ;
+----+------------+
| id | name       |
+----+------------+
| 1 | 小命00111 |
| 3 | 邵志刚0011 |
+----+------------+
 

上面语句中,SELECT name REGEXP '^[^0]*0{2}[^0]*$' 这句话 的返回值。如果匹配正确返回1,错误返回0.

使用正则表达式执行:
 

复制代码 代码示例:
mysql> SELECT 'aa111aaaaaaaaa00' REGEXP '^[^0]*0{2}[^0]*$';
+------------------------------------------------------------+
| 'aa111aaaaaaaaa00' REGEXP '^[^0]*0{2}[^0]*$' |
+------------------------------------------------------------+
|                                                                         1 |
+------------------------------------------------------------+
 

也可以取别名。
 

复制代码 代码示例:
mysql> SELECT 'aa111aaaaaaaaa00' REGEXP '^[^0]*0{2}[^0]*$' n ;
+---+
| n |
+---+
| 1 |
+---+
 

由此可见,可以将mysql的正则查询语句作为一个列来处理,对于输出一定格式的数据很有帮助哦。