mysql 正则表达式 regexp rlike not rlike
regexp rlike not rlike
今天在上班的时候突然遇到了一个问题,C+组的同事要删除mysql里面的一些特殊数据,想要正则进行匹配。于是问我,没想到还真的把我难住了,问题如下:
CDN项目中有关域名数据有如下情况:
+------------+
| id |
+------------+
| 1a.wangwei |
| 2a.wangwei |
| 3a.wangwei |
| 1b.wangwei |
| 2b.wangwei |
| 2c.wangwei |
| 1c.wangwei |
+------------+
7 rows in set (0.00 sec)
当然,真实数据不止这些,这是我为了方便说明临时建的表。如图所示,这些数据的区别就在于开头的两个字符不同,我们现在的业务需要我们把不是*a.*,的数据删除,也就是把b,c的都删除,于是同事想到用正则处理,
这个用正则是非常好处理的: ‘\d[^a]\..*'就可以了,然而我还真没在mysql中用过正则,一时被难住了。
其实他这个问题不用正则也可以解决:
mysql> select * from a where id not like '_a%';
+------------+
| id |
+------------+
| 1b.wangwei |
| 2b.wangwei |
| 2c.wangwei |
| 1c.wangwei |
+------------+
4 rows in set (0.00 sec)
这样就可以了,但这个只是简单的情况,如果业务需要更加复杂的匹配,mysql自带的模式匹配可能就不能够满足我们的业务需求了。于是我上网搜了搜mysql 正则,果不其然,还真可以直接写正则表达式,
用 regexp ,rlike 或者 not rlike,三个关键字都可以实现,在关键字后加'',里面直接写正则表达式就可以了:
mysql> select * from a where id regexp '[0-9][^a]\..*';
+------------+
| id |
+------------+
| 1b.wangwei |
| 2b.wangwei |
| 2c.wangwei |
| 1c.wangwei |
+------------+
4 rows in set (0.00 sec)
目前我还没有发现,regexp和rlike有什么区别,所以暂时可以认为是一样的。而not relike 就是 rlike 取反。
mysql自带的匹配模式已经可以满足我们大多的业务需求,然而正则肯定是更加灵活与方便,所以必要的时候还是可以使用。
最后,这里附录上正则的符号表:
|
5. 全部符号解释
|
转义:
1. \* \\
\Q\E 之间的将会作为普通字符处理,不解释
2. |
表示或者aaa|bbb
mysql 正则表达式 regexp rlike not rlike的更多相关文章
- MySQL正则表达式 REGEXP详解
在开始这个话题之前我们首先来做一个小实验,比较一下REGEXP和Like他们两个哪个效率高,如果效率太低,我们就没有必要做过多的研究了,实验的代码如下:<?phpRequire("co ...
- MySQL中REGEXP正则表达式使用大全
REGEXP在mysql是用来执行正则表达式的一个函数 像php中的preg之类的函数了,regexp正则函数如果只是简单的查询使用like即可,但复杂的还是需要使用regexp了,下面我们来看看. ...
- 【转载】MYSQL模式匹配:REGEXP和like用法
转载地址:http://www.webjx.com/database/mysql-32809.html like like要求整个数据都要匹配,而REGEXP只需要部分匹配即可. 也就是说,用Like ...
- mysql正则表达式及应用
mysql where子句的模式匹配 今天在应用中遇到了这样的一个问题,有一个字段 t1,其中的值类似于:1,1,1,2,3,3,4,4,5,5,2,4,3,2,1,2 需要从里面搜索出比如说:第一个 ...
- MySQL 正则表达式
介绍 正则表达式用来描述或者匹配符合规则的字符串.它的用法和like比较相似,但是它又比like更强大,能够实现一些很特殊的规则匹配:正则表达式需要使用REGEXP命令,匹配上返回"1&qu ...
- mysql的REGEXP 和like的详细研究和解释
1 regexp ^ 匹配字符串的开始部分 $ 匹配字符串的结束部分 . 匹配任何字符(包括回车和新行) a* 匹配0或多个a字符的任何序列 a+ 匹配1个或多个a字符的任何序列 a? 匹配0个或1个 ...
- MySql 正则表达式简介及使用
MySql正则表达式简介及使用 by:授客 QQ:1033553122 简介 正则表达式描述了一组字符串,该字符放置于REGEXP工具后面.作用是将一个正则表达式与一个文本串进行比较. 最简单的正则表 ...
- 二十二、MySQL 正则表达式
MySQL 正则表达式 在前面的章节我们已经了解到MySQL可以通过 LIKE ...% 来进行模糊匹配. MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正 ...
- DB-MySQL:MySQL 正则表达式
ylbtech-DB-MySQL:MySQL 正则表达式 1.返回顶部 1. MySQL 正则表达式 在前面的章节我们已经了解到MySQL可以通过 LIKE ...% 来进行模糊匹配. MySQL 同 ...
随机推荐
- linux - fpga-framebuff驱动
* linux/drivers/video/fpga_fb.c --fpga graphics adaptor frame buffer device * Created 16 Sep2011 * ...
- gch文件学习
今晚学习友元函数的时候一点一点的在写一个头文件和一个源文件,中间g++ test.h了一下,无意中就生成了test.h.gch文件.后来修改了头文件的内容,但是不知道为什么一直各种出错,一番折腾之后才 ...
- Golang HTTP文件上传
2018年02月08日 10:07:13 冷月醉雪 阅读数:346 标签: golangHTTP文件上传更多 个人分类: Go 版权声明:本文为博主原创文章,未经博主允许不得转载. https:/ ...
- php url配置项
- 图像处理之二维码生成-qr
Javascript生成二维码(QR) 网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成.本着对服务器性能的考虑,这种小事情都让服务器 ...
- POJ 3087 Shuffle'm Up(模拟)
Shuffle'm Up Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7404 Accepted: 3421 Desc ...
- zoj 1081:Points Within(计算几何,判断点是否在多边形内,经典题)
Points Within Time Limit: 2 Seconds Memory Limit: 65536 KB Statement of the Problem Several dra ...
- SQL语句:语法错误(操作符丢失)在查询表达式中
所谓操作符丢失,应该是你在拼接SQL语句是少了关键词或者分隔符,导致系统无法识别SQL语句.建议:1.监控SQL语句,看看哪里出现问题:断点看下最后的sql到底是什么样子就知道了,另外你可以把这段sq ...
- 编程之美 set 14 小飞的电梯调度算法
题目 电梯每次上升只停一次, 求问电梯停在哪一楼能够保证乘坐电梯的所有乘客爬楼层的层数之和最小 思路 假设电梯的层数是 m, 乘客人数是 n 1. 枚举, 时间复杂度是 o(mn) 2. 滚动解法. ...
- ios8推送问题
博文转载至 http://blog.csdn.net/cerastes/article/details/39546625 ios8push推送通知适配 ios8推送问题 registerForRem ...