Mysql数据库正则表达式

1.基本字符的匹配

SELECT * FROM a1 WHERE name regexp '1000'  #匹配名称含有1000的所有行
SELECT * FROM a1 WHERE name regexp '.000'  #匹配以000结尾的所有行,(.正则中表示:匹配任意一个字符)

从中可以看到正则表达式能够模拟LIKE使用通配符,注意:在通配符能完成的时候就不用正则,因为正则可能慢点,当然正则也能简化通配符,完成更大的作用。所以要有所取舍。

LIKEREGEXP的区别:

 SELECT * FROM a1 WHERE name LIKE 'a'SELECT * FROM a1 WHERE name regexp 'a' 

下面两条语句第一条不返回数据,第二条返回数据。
原因如下:

LIKE匹配整个列值时,不会找到它,相应的行也不会被返回(除非使用通配符)
REGEXP匹配时,会自动查找并返回结果。
那么REGEXP也能匹配整个列值,使用^$定位符即可!

匹配不区分大小写

Mysql正则大小写都会匹配,为区分大小写可使用binary关键字,如:

SELECT * FROM a1 WHERE name LIKE binary '%J%'   #使用LIKE+通配符匹配大写J
SELECT * FROM a1 WHERE name regexp binary 'j'   #使用正则匹配小写j

2.进行OR匹配

|为正则表达式的OR操作符,表示匹配其中之一

SELECT * FROM a1 WHERE name regexp binary 'a|j|G' 

3.匹配特定字符

使用[]括起来的字符,将会匹配其中任意单个字符。

SELECT * FROM a1 WHERE name regexp '[12]st'

以上'[12]st'正则表达式,[12]定义一组字符,它的意思是匹配1或2,因此结果如下:

正如所见,[]是另一种OR语句,[123]st可以是[1|2|3]st的缩写,也可以使用后者,注意:1|2|3 st这样不推荐,因为mysql会假定你的意思是匹配'1'或'2'或'3st'除非你把字符|括在一个集合中,如:[1|2|3]st
字符也可以否定,加^则意味着除此之外,如[^123]st意思是匹配除了1st、2st、3st之外的数据。

4.匹配范围

正则表达式可以使用-匹配一个范围,如[0-9]匹配任意数字,无论是1还是11还是10111,[a-z]匹配任意小写字母。

5.匹配特殊字符
如上,./-/[]等是正则表达式的特殊字符,如果要匹配含有这些字符的数据,就需要使用转义(escaping),\\。如\\.表示查找'.'。\\也用来引用元字符(具有特殊含义的字符),如:
\\f:表示换页
\\n:表示换行
\\r:表示回车
\\t:表示制表
\\v:表示纵向制表
Notes:

如果匹配反斜杠本身()则需要使用\\\
为什么Mysql使用两个反斜杠(\),而很多语言使用一个反斜杠转义呢,因为mysql自己解释一个,正则表达式库解释一个。

6.匹配字符串


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android项目 之 记事本(6)----- 加入手写

想必大家都用过QQ的白板功能,里面主要有两项,一个是涂鸦功能,事实上类似于上节的画板功能,而还有一个就是手写,那记事本怎么能没有这个功能呢,今天就来为我们的记事本加入手写功能。 先上图,看看…

HTTP协议中常见请求方法以及一些常见错误代码

GET: 请求指定的页面信息,并返回实体主体。 HEAD: 只请求页面的首部。 POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。 PUT: 从客户端向服务器传送的数据取代指定的文档的内容。 DELETE&#xff…

license文件生成原理

byte解密weblogic加密oraclehex现在很多J2EE应用都采用一个license文件来授权系统的使用,特别是在系统购买的早期,会提供有限制的license文件对系统进行限制,比如试用版有譬如IP、日期、最大用户数量的限制等。 而license控制的方法又有很…

linux常用关机命令及其区别-Shutdown halt reboot init

1.shutdown shutdown命令安全地将系统关机。 shutdown 参数说明: [-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。 [-r] 重启计算器。 [-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。 [-h] 关机后关闭电源〔halt〕。 [-n] 不用init﹐而是自己来关机。不鼓…

CSS3动画@keyframes中translate和scale混用出错问题

在写基于网页的2048时,想让一个元素出现时已经通过translate属性固定在指定位置,同时显示动画scale(0)-->scale(1),以实现放大出现效果。 CSS代码为 -webkit-keyframes mymove_failed{0% {-webkit-transform:translate(50px,50px) scale…

metero学习

博客园首页新随笔联系订阅管理最新随笔 最新评论 node.js相关的中文文档及教程 (转) Posted on 2013-08-30 10:40 小小清清 阅读(61) 评论(0) 编辑 收藏 node.js api中英文对照: http://docs.cnodejs.net/cman/ node.js入门中文版: http://nodebeginner.org/index-zh-cn.html e…

Linux统计单个文件统计

语法:wc [选项] 文件… 说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。 该命令各选项含义如下: - c 统计字节数…

jQuery慢慢啃之事件对象(十一)

1.event.currentTarget//在事件冒泡阶段中的当前DOM元素 $("p").click(function(event) {alert( event.currentTarget this ); // true }); 2.event.data//当前执行的处理器被绑定的时候,包含可选的数据传递给jQuery.fn.bind。 $("a").ea…

Linuxcurl命令参数详解

Linuxcurl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态。1.linuxcurl抓取网页:抓取百度:curlhttp://www.baidu.com如发现乱码,…

android解析XML总结(SAX、Pull、Dom三种方式)

在android开发中&#xff0c;经常用到去解析xml文件&#xff0c;常见的解析xml的方式有一下三种&#xff1a;SAX、Pull、Dom解析方式。 今天解析的xml示例&#xff08;channels.xml&#xff09;如下&#xff1a; 1 <?xml version"1.0" encoding"utf-8"…

查看Eclipse中的jar包的源代码:jd-gui.exe

前面搞了很久的使用JAD&#xff0c;各种下载插件&#xff0c;最后配置好了&#xff0c;还是不能用&#xff0c;不知道怎么回事&#xff0c; 想起一起用过的jd-gui.exe这个工具&#xff0c;是各种强大啊&#xff01;&#xff01;&#xff01; 只需要把jar包直接扔进去就可以了&a…

maven scope含义的说明

compile &#xff08;编译范围&#xff09; compile是默认的范围&#xff1b;如果没有提供一个范围&#xff0c;那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用&#xff0c;同时它们也会被打包。 provided &#xff08;已提供范围&#xff09; provided 依…

此地址使用了一个通常用于网络浏览以外的端口。出于安全原因,Firefox 取消了该请求...

FirFox打开80以外的端口&#xff0c;会弹出以下提示&#xff1a; “此地址使用了一个通常用于网络浏览以外的端口。出于安全原因&#xff0c;Firefox 取消了该请求。”。 解决方法如下&#xff1a; 在Firefox地址栏输入about:config,然后在右键新建一个字符串键network.securit…

Java操作shell脚本

public class Exec {private static ILogger logger LoggerFactory.getLogger(Exec.class);public Exec() {super();}/*** 执行命令&#xff08;如Shell脚本&#xff09;<br>* * param cmd 操作命令* param timeout 超时时间* return 命令执行过程输出内容* * throws IO…

Mysql更新插入

在向表中插入数据的时候&#xff0c;经常遇到这样的情况&#xff1a;1. 首先判断数据是否存在&#xff1b; 2. 如果不存在&#xff0c;则插入&#xff1b;3.如果存在&#xff0c;则更新。 在 SQL Server 中可以这样处理&#xff1a; if not exists (select 1 from t where id …

信息加密之信息摘要加密MD2、MD4、MD5

对于用户数据的保密一直是各个互联网企业头疼的事&#xff0c;那如何防止用户的个人信息泄露呢&#xff1f;今天为大家介绍一种最简单的加密方式--信息摘要算法MD。它如何来保护用户的个人信息呢&#xff1f;其实很简单&#xff0c;当获得到用户的信息后&#xff0c;先对其进行…

Java 从网络上下载文件

/*** 下载文件到本地 */public static void downloadPicture(String imageUrl, String filename){ URL url;try {url new URL(imageUrl);//打开网络输入流DataInputStream dis new DataInputStream(url.openStream());//建立一个新的文件FileOutputStream fos new FileOutp…

An error was encountered while running(Domain=LaunchSerivcesError, Code=0)

今天突然遇到这样一个错误&#xff0c;编译可以通过&#xff0c;但是运行就会弹出这个错误提示&#xff1a; An error was encountered while running(DomainLaunchSerivcesError, Code0) 解决办法就是重置模拟器。 点击模拟器菜单中的Reset Contents and Settings&#xff0c;…

hdu 4091 线性规划

分析转自&#xff1a;http://blog.csdn.net/dongdongzhang_/article/details/7955136 题意 &#xff1a; 背包能装体积为N, 有两种宝石&#xff0c; 数量无限&#xff0c; 不能切割。 分别为 size1 value 1 size2 value2 问背包能装最大的价值&#xff1f; 思路 &#xff…

linux fmt命令

简单的格式化文本 fmt [option] [file-list] fmt通过将所有非空白行的长度设置为几乎相同&#xff0c;来进行简单的文本格式化 参数 fmt从file-list中读取文件&#xff0c;并将其内容的格式化版本发送到标准输出。如果不制定文件名或者用连字符&#xff08;-&#xff09;来替代…