欢迎来到站长教程网!

MariaDB

当前位置:主页 > 数据库 > MariaDB >

在MYSQL中使用正则表达式的笔记

时间:2019-07-11|栏目:MariaDB|点击:

正则表达式不只是可以在php,asp,.net这些编辑脚本中使用了,在mysql中正则表达式也是可以使用的,下面我们一起来学习一下mysql中正则表达式使用方法.

正则表达式广泛用于各种程序编程的地方,在mysql sql语句中使用正则表达式也可以解决很多查询问题,化繁为简,并且巧妙运用可以提高mysql查询效率,本文讲讲mysql中如何使用regexp语法运行含有正则表达式的sql语句.

SELECT prod_name 

FROM products 

WHERE prod_name REGEXP '1000|2000' 

ORDER BY prod_name; 

在mysql中sql语句使用正则表达式,在需要的地方用REGEXP关键字,如例中所示,REGEXP正则表达式是’1000|2000’,表示1000或者2000,也就是查询prod_name字段为1000或者2000的结果.

mysql中的正则表达式规则大致和其他地方的正则表达式规则相同,比如“\”转义,“|”或者,字母、数字的表示都相同.

再如:

SELECT prod_name 

FROM products 

WHERE prod_name REGEXP '\\([0-9] sticks?\\)' 

ORDER BY prod_name; 

可以查到的结果例如:

(1 sticks)

(3 sticks)

(4)

说明:”\(“,”\)”表示转义,包含”(“,”)”.问号表示可有可无.

一个正则表达式中的可以使用以下保留字.

^   

所匹配的字符串以后面的字符串开头   

mysql> select "fonfo" regexp "^fo$"; -> 0(表示不匹配)   

mysql> select "fofo" regexp "^fo"; -> 1(表示匹配)   

$   

所匹配的字符串以前面的字符串结尾   

mysql> select "fono" regexp "^fono$"; -> 1(表示匹配)   

mysql> select "fono" regexp "^fo$"; -> 0(表示不匹配)   

.   

匹配任何字符(包括新行)   

mysql> select "fofo" regexp "^f.*"; -> 1(表示匹配)   

mysql> select "fonfo" regexp "^f.*"; -> 1(表示匹配)   

a*   

匹配任意多个a(包括空串)   

mysql> select "ban" regexp "^ba*n"; -> 1(表示匹配)   

mysql> select "baaan" regexp "^ba*n"; -> 1(表示匹配)   

mysql> select "bn" regexp "^ba*n"; -> 1(表示匹配)   

a+   

匹配任意多个a(不包括空串)   

mysql> select "ban" regexp "^ba+n"; -> 1(表示匹配)   

mysql> select "bn" regexp "^ba+n"; -> 0(表示不匹配)   

a?   

匹配一个或零个a   

上一篇:具有负载均衡功能的MySQL服务器集群部署及实现

栏    目:MariaDB

下一篇:mysql中获取表中随机数实现随机抽取

本文标题:在MYSQL中使用正则表达式的笔记

本文地址:http://www.jh-floor.com/shujuku/Mariadb/2960.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号