Mysql sql声明召回2 --正则表达式
这里简单回顾mysql在过滤后的数据使用正则表达式时。主要利用每方法将样品,或添加一些简短的说明。
下面说说提前,使用正则表达式是用来过滤数据 REGEXPkeyword
基本字符相匹配:
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\\.]’;
匹配字符串的意思只是要.而对于数据的开始的任意数字被查询
版权声明:本文博客原创文章。博客,未经同意,不得转载。