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 同 ...
随机推荐
- socket相关函数中断后重试
慢系统调用accept,read,write被信号中断时应该重试.对于accept,如果errno为ECONNABORTED,也应该重试. connect虽然也会阻塞,但被信号中断时不能立即重试,该s ...
- thinkphp 命名规范
目录和文件命名 目录和文件名采用 小写+下划线,并且以小写字母开头: 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致(包括大小写): 类名和 ...
- jQuery补充,基于jQuery的bxslider轮播器插件
基于jQuery的bxslider轮播器插件 html <!DOCTYPE html> <html lang="zh-cn"> <head> & ...
- 测试RESTful API利器-Postman
对于前端开发者而言,最需要的往往不是技术本身,其实技术都没什么难的,而最缺少的则是各种各样好的兵器,比如调试,开发工具等等. 我们这里就推荐一款前端开发的利器-Postman,它是Google Chr ...
- iScroll框架的使用和修改
iScroll 的诞生是因为手机 Webkit 浏览器(iPhone.iPod.Android 和 Pre)本身没有为固定宽度和高度的元素提供滚动内容的方法.这导致了很多网页使用 position:a ...
- a &a &a[0]之间的区别和联系
数组中,a为数组的首地址,&a[0]为数组第一个元素的地址. 所以 a == &a[0] 但是,&a又是什么东西呢? 我们来做下面的代码测试: #include <std ...
- Hibernate_day03--Hibernate多对多操作
Hibernate多对多操作 多对多映射配置 以用户和角色为例演示 第一步 创建实体类,用户和角色 第二步 让两个实体类之间互相表示 (1)一个用户里面表示所有角色,使用set集合 具体: User. ...
- 编程之美 set 7 求数组中的最长递增子序列
解法 1. 假设在目标数组 array[] 的前 i 个元素中, 最长递增子序列的长度为 LIS[i] 那么状态转移方程为 LIS[i] = max(1, LIS[k]+1) array[i+1] & ...
- iOS开发之 -- bundle程序束的制造
我们在写项目的时候,需要添加大量的图片,这个时候除了在x-code-->Assets文件里面添加图片外,还可以添加程序束,这样的话 项目看起来比较整齐,也显得比较专业,下面就来说一下程序束的制造 ...
- iOS开发之--调用打电话,发邮件,发短信的系统功能的代码
1.调用 自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@hz ...