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\.]’;

匹配字符串的意思只是要.而对于数据的开始的任意数字被查询

版权声明:本文博客原创文章。博客,未经同意,不得转载。

原文地址:https://www.cnblogs.com/zfyouxi/p/4643094.html