在MYSQL中使用正则表达式的笔记_MariaDB_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • 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号