来源:自学PHP网 时间:2015-04-16 10:50 作者: 阅读:次
[导读] 在这里简单回顾一下mysql在过滤数据的时候正则表达式的用法,主要是每个用法给一个例子,或者加一些简短的说明。这里要提前说一下,使用正则表达式过滤数据是用 REGEXP关键字基本...
在这里简单回顾一下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\\.]’; 该匹配字符串的意思是只有以.和任意数字为开头的数据被查询 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com