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 同 ...
随机推荐
- spark读取本地文件
/** * Read a text file from HDFS, a local file system (available on all nodes), or any * Hadoop-supp ...
- java中,scala中代码检测当前环境的版本
//来自spark源码// sparkContext初始化的时候写着 private def warnDeprecatedVersions(): Unit = { val javaVersion = ...
- Spring MVC添加支持Http的delete、put请求!(HiddenHttpMethodFilter)
浏览器form表单只支持GET与POST请求,而DELETE.PUT等method并不支持,spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法,使得支持GET.POST.PUT ...
- java生成webservice
使用Eclipse生成一个WebService应用 1.创建一个Dynamic web project 2.创建一个对外提供服务的类.比如: package com.guorui.services; ...
- node.js发http请求
标准库中默认的HTTP模块 const https = require('https'); https.get('https://api.nasa.gov/planetary/apod?api_key ...
- Hadoop、Pig、Hive、NOSQL 学习资源收集
转自:http://www.cnblogs.com/zzjhn/p/3855566.html (一)hadoop 相关安装部署 1.hadoop在windows cygwin下的部署: http:// ...
- Apache -- 压力测试工具ab.exe
ab全称ApacheBench是Apache超文本传输协议(HTTP)的性能测试工具.是描绘当前所安装的Apache的执行性能, 主要是显示你安装的Apache每秒可以处理多少个请求Apache自带的 ...
- PHP curl_setopt函数用法介绍中篇
此篇已实例为主. 一.一般的实例 demo1.php <?php $user = "admin123"; $pass = "admin456"; // $ ...
- 带清空按钮TextBox的实现(WPF)
本博文针对人群:WPF新手.博文内容:通过Style制定包含清空Button的TextBox样式模板,通过在Style中引入自定义类的附加属性完成对TextBox的内容清空. <span sty ...
- superresolution_v_2.0 Application超分辨率程序文档
SUPERRESOLUTION GRAPHICAL USER INTERFACE DOCUMENTATION Contents 1.- How to use this application. 2.- ...