在这里简单回顾1下mysql在过滤数据的时候http://www.wfuyu.com/help/zz/表达式的用法,主要是每一个用法给1个例子,或加1些简短的说明。
这里要提早说1下,使用http://www.wfuyu.com/help/zz/表达式过滤数据是用 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中的通配符"_"1样,该语句的意思是查询处prod_name字段中包括诸如1000,2000,或任意1个字符后边跟上000的数据
进行OR匹配:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘1000|2000’;
在这里“|”代表or的意思,也就是“或”的意思,该语句会吧prod_name字段中包括1000或包括2000或两个都包括的数据查询出来,or匹配可以给出两个以上的匹配项例如 1000|2000|3000
匹配几个字符之1:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘[123] Ton’;
[]括起来的部份表示匹配其中1个例如 1 Ton ,2 Ton 这样
匹配范围:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘[1⑼] Ton’;
如果在上1个例子中[]括起来的部份的字符比较长,而且都是数组,并且数字又是连续的话,可以改成范围匹配,这样sql语句会更加简短1点,固然可以把[1⑼]换成[123456789],如果是字母的话可是使用[a-z]这样的方式
匹配特殊字符:
SELECT prod_name FROM products WHERE prod_name REGEXP ‘.’;
在mysql中要匹配特殊字符的话需要加上//转义1下才可以,由于特殊字符在sql语句中有特殊的含义
匹配多个实例:
首先需要介绍几个匹配字符
* 0个或多个匹配
+ 1个或多个匹配(等于{1,})
? 0个或1个匹配(等于{0,1})
{n} 指定数目的匹配
{n,} 很多于指定数目的匹配
{n,m} 匹配数目的范围(m不超过255)
SELECT prod_name FROM products WHERE prod_name REGEXP ‘([0⑼] sticks?)’;
在该语句中?匹配它前面的任何字符的0次或1次出现
定位符:
^ 匹配文本的开始
$ 匹配文本的结尾
[[:<:]] 词的开始
[[:>:]] 词的结尾
SELECT prod_name FROM products WHERE prod_name REGEXP ‘^[0⑼.]’;
该匹配字符串的意思是只有以.和任意数字为开头的数据被查询