MySql 用where 子句对正则表达式提供了支持,允许你指定正则表达式,注意mysql仅支持多数正则表达式实现的一个很小的子集。

1.基本字符匹配:

SELECT prod_name
FROM products
WHERE prod_name REGEXP '1000';

mysql 中正则表达式匹配不区分大小写,为区分大小写,可使用BINARY 关键字,如:

WHERE prod_name REGEXP BINARY 'JetPak .000'。

2. OR 匹配

WHERE prod_name REGEXP '1000|2000';

| 为正则表达式的OR操作符。它表示匹配基中之一。多个OR条件可以并入单个正则表达式,例如:'1000|2000|3000' 将匹配1000或2000或3000.

3.匹配几个字符之一

WHERE prod_name REGEXP '[123] Ton'

[123] 定义一组字符,它的意思是匹配1或2或3。[]是另一种形式的OR语句,事实上,正则表达式[123]Ton 为[1|2|3]Ton 的缩写。

为否定一个字符集,在集合的开始处放置一个^即可,因此[^123]匹配除1,2,3字符之外的任何东西。

4.匹配范围

可使用 - 来定义一个范围,如[0-9] 表示匹配0到9之间的任一个数字。范围不限于完整的集合,[1-3]和[6-9]也是合法的范围。此外,范围不一定只是数值的,[a-z]匹配任意一个字母字符。

WHERE prod_name REGEXP '[1-5] Ton'

5.匹配特殊字符

为了匹配特殊字符,必须用\\为前导进行转义,\\- 表示查找-,\\. 表示查找. 。

WHERE vend_name REGEXP '\\.'

为了匹配反斜杠(\)字符本身,需要使用\\\

6.定位符

为了匹配特定位置的文本可以使用如下定位符:

元字符 说明
^ 文本的开始
$ 文本的结尾
   
   

例如,你想找出以一个数(包括以小数点开始的数)开始的所有产品:

WHERE prod_name REGEXP '^[0-9\\.]'

^有两种用法:在集合中(用[和]定义),用它来否定该集合,否则用它来指定串的开始。

7.重复元字符

. 匹配任意一个字符
* 匹配0个或多个字符
+ 匹配1个或多个字符(等于{1,}
? 匹配0个或1个字符(等于{0,1}
{n} 指定数目的匹配
{n,} 不少于指定数据的匹配
{n,m} 匹配数目的范围(m不超过255)

 

WHERE prod_name REGEXP '\\([0-9] sticks?\\)'

\\( 匹配字符(,[0-9]匹配任意一个数字,sticks? 匹配stick和sticks (s 后的?使s可选),\\) 匹配字符)。

8.简单的正则表达式测试

可以在不使用数据库表的情况下用SELECT来测试正则表达式。REGEXP 在匹配成功时总是返回1,匹配不成功时返回0,可以用带文字串的REGEXP来测试表达式,并试验它们。相应的语法如下:

SELECT 'hello' REGEXP '[0-9]';

这个例子显示将返回0(因为文本hello中没有数字)。

MySql 使用正则表达式的更多相关文章

  1. mysql中正则表达式的使用

    mysql中正则表达式的性能要高于like,所以这里总结一下正则表达式的使用. 正则表达式的模式及其含义: 下面举例说明其用法: 建表student: create table student(id ...

  2. MYSQL使用正则表达式过滤数据

    一.正则与LIKE的区别 Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符.字符串.例如:select * from wp_posts where post_name REGEXP ...

  3. MySQL中正则表达式

    正则表达式是用来匹配文本的特殊的串(字符集合),将一个模式(正则表达式)与一个文本串进行比较 从文本文件中提取电话号码 查找名字中间带有数字的文件 文本块中重复出现的单词 替换页面的URL为这些URL ...

  4. Mysql(四)正则表达式

    一.正则表达式 1.使用like可以进行不确定的查询(模糊查询),然而,模糊 查询的功能有限,当需要进行更加复杂的模式匹配时,可以 使用正则表达式来完成. 2.正则表达式可以对指定的字符串与模式之间执 ...

  5. MySQL之正则表达式

    一.介绍 正则表达式用来描述或者匹配符合规则的字符串.它的用法和like比较相似,但是它又比like更强大,能够实现一些很特殊的规则匹配:正则表达式需要使用REGEXP命令,匹配上返回"1& ...

  6. mysql的正则表达式

    所谓正在表达式,就是通过模式去匹配一类字符串.MySQL支持的模式字符如下表所示: MySQL支持的模式字符 模式字符 含义 ^ 匹配字符串的开始部分 $ 匹配字符串的结束部分 . 匹配字符串中的任意 ...

  7. 果然学习好是有道理的,学习Mysql与正则表达式笔记

    正则表达式是用来匹配文本的特殊的字符集合,将一个正则表达式与文本串进行比较,Mysql中用where子句提供支持,正则表达式关键字:regexp1.使用‘|’匹配两个串中的一个 2.使用‘[]’匹配几 ...

  8. MySQL使用正则表达式比较字段中的数字

    今天遇到一个问题,需要对表中的一个类json字段的内容进行筛选,而筛选的条件是值要大于某个值.因为值的位数并不确定,考虑使用正则表达式进行筛选. 字段格式 类json的key-value字段,示例如下 ...

  9. MySQL的正则表达式的LIKE和REGEXP区别

    LIKE匹配整个列.如果被匹配的文本在列值 中出现,LIKE将不会找到它,相应的行也不被返回(除非使用 通配符).而REGEXP在列值内进行匹配,如果被匹配的文本在 列值中出现,REGEXP将会找到它 ...

随机推荐

  1. win7下将主分区转换成逻辑分区

    在了解怎么转换之前,先搞清楚主分区,扩展分区,逻辑分区的基本概念. 主分区,也称为主磁盘分区,和扩展分区.逻辑分区一样,是一种分区类型.主分区中不能再划分其他类型的分区,因此每个主分区都相当于一个逻辑 ...

  2. Jquery 获得服务器控件值的方法小结(转)

    由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法. <!--服务器控件代码:--> <asp:Tex ...

  3. Oracle 10g设置IP访问限制

    出于数据安全考虑,对Oracle数据库的IP做一些限制,只有固定的IP才能访问. 修改 db_1/NETWORK/ADMIN/sqlnet.ora文件 增加以下内容(红色表示注释): #开启ip限制功 ...

  4. 高性能CSS(一)

    避免使用@import 有两种方式加载样式文件,一种是link元素,另一种是CSS 2.1加入@import.而在外部的CSS文件中使用@import会使得页面在加载时增加额外的延迟.虽然规则允许在样 ...

  5. Apache使用mysql认证用户

    使用MySQL进行认证 第1步:下载MySQL认证模块,并更名为mod_auth_mysql.so文件,并保存在apache的modules目录下 第2步:apache要加载此功能模块 LoadMod ...

  6. jQuery实例—选项卡(js源码和jQuery)【一些常见方法(1)-练习】

    分别利用javascript的源码和jQuery来实现一个简单的选项卡,对比各自的步骤. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...

  7. google map 点击获取经纬度

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. Couchbase上发布的关于NoSQL的技术论文

    Couchbase是CouchDB与Membase两个NoSQL数据库相结合的产物,本文推荐的是Couchbase官方发表的一篇论文,命名为<NoSQL Database Technology& ...

  9. centos6.4下安装freetds使php支持mssql

    centos版本:6.4 php版本5.3.17 没有安装之前的情况:nginx+php+mysql+FPM-FCGI 接下来安装步骤如下: 1.打开http://www.freetds.org/,进 ...

  10. Mysql 配置主从服务自动同步功能

    1.修改主服务器master:   #vi /etc/my.cnf       [mysqld]       log-bin=mysql-bin   //[必须]启用二进制日志       serve ...