php 正则mysql语句_Mysqlsql语句回顾2--正则表达式_MySQL

在这里简单回顾一下mysql在过滤数据的时候正则表达式的用法,主要是每个用法给一个例子,或者加一些简短的说明。

这里要提前说一下,使用正则表达式过滤数据是用 REGEXP关键字

基本字符匹配:

SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000’;

该查询语句的意思是prod_name字段中包含1000的数据,只要值中的任何部位包含1000都可以

SELECT prod_name FROM products WHERE prod_name REGEXP ‘.000’;

"."代表的是单个字符的通配符,相当于任何单个字符,类似LIKE中的通配符"_"一样,该语句的意思是查询处prod_name字段中包含诸如1000,2000,或者任意一个字符后边跟上000的数据

进行OR匹配:

SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000|2000’;

在这里“|”代表or的意思,也就是“或”的意思,该语句会吧prod_name字段中包含1000或者包含2000或者两个都包含的数据查询出来,or匹配可以给出两个以上的匹配项例如 1000|2000|3000

匹配几个字符之一:

SELECT prod_name FROM products WHERE prod_name REGEXP ‘[123] Ton’;

[]括起来的部分表示匹配其中一个例如 1 Ton ,2 Ton 这样

匹配范围:

SELECT prod_name FROM products WHERE prod_name REGEXP ‘[1-9] Ton’;

如果在上一个例子中[]括起来的部分的字符比较长,而且都是数组,并且数字又是连续的话,可以改成范围匹配,这样sql语句会更加简短一点,当然可以把[1-9]换成[123456789],如果是字母的话可是使用[a-z]这样的方式

匹配特殊字符:

SELECT prod_name FROM products WHERE prod_name REGEXP ‘\\.’;

在mysql中要匹配特殊字符的话需要加上//转义一下才可以,因为特殊字符在sql语句中有特殊的含义

匹配多个实例:

首先需要介绍几个匹配字符

* 0个或者多个匹配

+ 一个或者多个匹配(等于{1,})

? 0个或者一个匹配(等于{0,1})

{n} 指定数目的匹配

{n,} 不少于指定数目的匹配

{n,m} 匹配数目的范围(m不超过255)

SELECT prod_name FROM products WHERE prod_name REGEXP ‘\\([0-9] sticks?\\)’;

在该语句中?匹配它前面的任何字符的0次或者一次出现

定位符:

^ 匹配文本的开始

$ 匹配文本的结尾

[[:[[:>:]] 词的结尾

SELECT prod_name FROM products WHERE prod_name REGEXP ‘^[0-9\\.]’;

该匹配字符串的意思是只有以.和任意数字为开头的数据被查询

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值