mysql的REGEXP 和like的详细研究和解释
1
- regexp
- ^ 匹配字符串的开始部分
- $ 匹配字符串的结束部分
- . 匹配任何字符(包括回车和新行)
- a* 匹配0或多个a字符的任何序列
- a+ 匹配1个或多个a字符的任何序列
- a? 匹配0个或1个a字符
- de|abc 匹配序列de或abc
- (abc)* 匹配序列adc的0个或者多个实例
- {n}、{m,n} {n}或{m,n}符号提供了编写正则表达式的更通用方式,能够匹配模式的很多前述原子(或“部分”)。m和n均为整数。
- a* 可被写为a{0,}
- a+ 可被写为a{1,}
- a? 可被写为a{0,1}
- [a-dX] 匹配任何是a,b,c,d或者X的字符,两个其他字符之间的’-‘字符构成一个范围
- [^a-dX] 匹配任何不是a,b,c,d或者X的字符,前面的字符’^’是否定的意思
- [.characters.] 在括号表达式中(使用[和]),匹配用于校对元素的字符序列,字符为单个字符或新行等字符名
- mysql> SELECT ‘~’ REGEXP ‘[[.~.]]'; -> 1
- mysql> SELECT ‘~’ REGEXP ‘[[.tilde.]]'; -> 1
- [=character_class=]
- 在括号表达式中(使用[和]),[=character_class=]表示等同类。它与具有相同校对值的所有字符匹配,包括它本身,
- [[=a=]] 等同于[a(+)],[a+],[a{1,}]
- [:character_class:]
- 在括号表达式中(使用[和]),[:character_class:]表示与术语类的所有字符匹配的字符类。
- 标准的类名称是:
- alnum 文字数字字符
- alpha 文字字符
- blank 空白字符
- cntrl 控制字符
- digit 数字字符
- graph 图形字符
- lower 小写文字字符
- print 图形或空格字符
- punct 标点字符
- space 空格、制表符、新行、和回车
- upper 大写文字字符
- xdigit 十六进制数字字符
- [[:<:]], [[:>:]]
- 这些标记表示word边界。它们分别与word的开始和结束匹配。word是一系列字字符,其前面和后面均没有字字符。字符是alnum类中的字母数字字符或下划线(_)。
- mysql> select ‘fang shan zi’ regexp ‘[[:<:]]shan[[:>:]]'; -> 1
- mysql> select ‘fang shan zi’ regexp ‘[[:<:]]fang[[:>:]]'; -> 1
- mysql> select ‘fang shans zi’ regexp ‘[[:<:]]shan[[:>:]]'; -> 0
- 正则表达式使用特殊字符,应在其前面加上2个反斜杠’\’字符
- mysql> SELECT ‘1+2′ REGEXP ‘1+2′; -> 0
- mysql> SELECT ‘1+2′ REGEXP ‘1\+2′; -> 0
- mysql> SELECT ‘1+2′ REGEXP ‘1\\+2′; -> 1
mysql的REGEXP 和like的详细研究和解释的更多相关文章
- MySQL正则表达式 REGEXP详解
在开始这个话题之前我们首先来做一个小实验,比较一下REGEXP和Like他们两个哪个效率高,如果效率太低,我们就没有必要做过多的研究了,实验的代码如下:<?phpRequire("co ...
- MySQL配置文件my.cnf 例子最详细翻译
转的 MySQL配置文件my.cnf 例子最详细翻译,可以保存做笔记用. #BEGIN CONFIG INFO#DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载 ...
- MySQL中REGEXP正则表达式使用大全
REGEXP在mysql是用来执行正则表达式的一个函数 像php中的preg之类的函数了,regexp正则函数如果只是简单的查询使用like即可,但复杂的还是需要使用regexp了,下面我们来看看. ...
- 单表扫描,MySQL索引选择不正确 并 详细解析OPTIMIZER_TRACE格式
单表扫描,MySQL索引选择不正确 并 详细解析OPTIMIZER_TRACE格式 一 表结构如下: 万行 CREATE TABLE t_audit_operate_log ( Fid b ...
- {MySQL的库、表的详细操作}一 库操作 二 表操作 三 行操作
MySQL的库.表的详细操作 MySQL数据库 本节目录 一 库操作 二 表操作 三 行操作 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf ...
- MySQL与Oracle的语法区别详细对比
MySQL与Oracle的语法区别详细对比 Oracle和mysql的一些简单命令对比在本文中将会涉及到很多的实例,感兴趣的你不妨学习一下,就当巩固自己的知识了 Oracle和mysql的一些简单 ...
- MySQL的库、表的详细操作
目录 MySQL的库.表的详细操作 一 库操作 二 表操作 MySQL的库.表的详细操作 本节目录 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset ...
- day 36 MySQL的库、表的详细操作
MySQL的库.表的详细操作 MySQL数据库 本节目录 一 库操作 二 表操作 三 行操作 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset u ...
- IIS7.0出错的解决方案 IIS 状态代码:IIS详细错误代码以及解释
一.请求筛选模块被配置为拒绝包含双重转义序列的请求.HTTP 错误 404.11 - Not Found 1.单击 开始 . 在 开始搜索 框中, 键入 Notepad. 右击 记事本 , 然后单 ...
随机推荐
- mysql概要(四)order by,group 的特点,子查询
1.order by 默认按升序排列(asc/desc),多字段排序 order by 字段 排序方式,字段2 排序方式,..:在分组排序中,排序是对分组后的结局进行排序,而不是在组中进行排序. 2. ...
- 【转载】高性能IO设计 & Java NIO & 同步/异步 阻塞/非阻塞 Reactor/Proactor
开始准备看Java NIO的,这篇文章:http://xly1981.iteye.com/blog/1735862 里面提到了这篇文章 http://xmuzyq.iteye.com/blog/783 ...
- 5.7 C和C++的关系
- Android广播BroadcastReceiver 二
BroadcastReceiver: 在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制.而BroadcastReceiver是对发送出来的 Broadcast进行过滤 ...
- 使用DBMS_STATS来收集统计信息【转】
overview Oracle's cost-based optimizer (COB) uses statistics to calculate the selectivity (the fract ...
- RemoteWebDriver管理
直接贴代码: @Parameters({"BrowserType","NodeIP","NodePort"}) public void be ...
- Python第三方常用工具、库、框架等
Python ImagingLibrary(PIL):它提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换.打印和显示.还能进行一些图形效果的处理,如图形的放大.缩小和旋 ...
- Java的内存回收机制
原文出处: cnblogs-小学徒V 在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C ...
- Qt之Concurrent Map和Map-Reduce
简述 QtConcurrent::map().QtConcurrent::mapped()和QtConcurrent::mappedReduced()函数在一个序列中(例如:QList或QVector ...
- Qt之保持GUI响应
简述 Qter们经常遇到由于耗时操作造成GUI阻塞的问题.其实,这个问题并不难克服,可以采用许多不同的方式,下面我会列举一些可选范围,根据使用情况进行处理. 简述 执行耗时操作 手动事件处理 使用一个 ...