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 同 ...
随机推荐
- 字符集导致乱码问题,gi安装问题
今天是2014-4-24,今天中午收到一个天津网友问的一个安装gi的问题,和一个网友问的字符集问题:在此整理一下 问题一: gi安装问题: 问题描写叙述: 在安装gi的时候提示:"INS-2 ...
- Odoo ParseError:"decoder jpeg not available" while parsing....
The reason causing this problem is the plugin PIL install error to solve this problem,try this: 1. c ...
- TVS二极管的主要参数与选型
TVS二极管的主要参数--转载 处理瞬时脉冲对器件损害的最好办法是将瞬时电流从敏感器件引开.TVS二极管在线路板上与被保护线路并联,当瞬时电压超过电路正常工作电压后,TVS二极管便发生雪崩,提供给瞬时 ...
- string--C++ STL 学习
C++STL提供了string基本字符系列容器来处理字符串,可以把string理解为字符串类,提供了添加删除\替换\查找和比较等丰富的方法. 使用string容器,需要包含头文件声明#include ...
- 翻译:Laravel-4-Generators 使用自己定义代码生成工具高速进行Laravel开发
使用自己定义代码生成工具高速进行Laravel开发 这个Laravle包提供了一种代码生成器,使得你能够加速你的开发进程.这些生成器包含: generate:model – 模型生成器 generat ...
- asp.net 省市联级代码
3种代码 asp.net js 和数据库的 都测试通过了..例子在http://download.csdn.net/download/jine515073/6878157
- ImportError: No module named mysql 报错python引用mysql报错
需要安装 pip2.7 install MySQL-python pip2.7 install mysql-connector
- ES6学习笔记(1,let和const)
在介绍let和const之前我们先复习一下相关的知识点. 关于函数作用域 开发过程中,在ES6(ECMA2015)标准推出之前,声明变量的方式一直都是var,而变量的作用域一般也只在函数内部,即函数作 ...
- 以下( )可用于检索session属性userid的值。
A.session. getAttribute (“userid”); B.session. setAttribute (“userid”); C.request. getParameter (“us ...
- C语言0长度数组(柔性数组)
0长度数组,又称为柔性数组(flexible array).通经常使用来实现变长数组.常见于TLV(type-length-value)的数据结构中. 在标准 C 和 C++ 中,不同意用 0 长度数 ...