正则表达式是用某种模式去匹配一类字符串的一种方式,其查询能力要远在通配字符之上。
在mysql中使用REGEXP关键字来匹配查询正则表达式。
demo
SELECT * FROM tablename WHERE columnname REGEXP ‘xxx’;
column 后面用 regexp 加一个正则表达式。。
正则表达式就不写了
网上找了些demo
*模式字符 *
其含义为匹配以特定字符或者字符串开头的记录。
例如:使用“^”表达式查询tb1中major字段以m开头的记录,则语句如下:
Select major from tb1 where major regexp ‘^m’;
模式字符 $
其含义为匹配以特定字符或者字符串结尾的记录。
例如:使用“$”表达式查询tb1中major字段以c结尾的记录,则语句如下:
Select major from tb1 where major regexp ‘c$’;
模式字符 .
其含义为匹配字符串中任意一个字符,包括回车或者换行等。
例如:使用“.”表达式查询tb1中number字段包含4的记录,则语句如下:
Select number from tb1 where major regexp ‘4.’;
(我举得这种情况 . 可以省略)
模式字符 [字符集合]
其含义为匹配字符集合中任意一个字符
例如:使用“[ ]”表达式查询tb1中number字段包含456的记录,则语句如下:
Select number from tb1 where major regexp ‘[456]’;
模式字符 S1|S2|S3
其含义为匹配 S1、S2、S3中的任意一个字符串
例如:查询tb1中major字段包含a、p或者mic字符中任意一个字符的记录,则语句如下:
Select * from tb1 where major regexp ‘a|p|mic’;
模式字符 *
其含义为匹配多个该字符之前的字符,包括0和1个。
例如:使用“*”表达式查询tb1中major字段中m字符前出现c字符的记录,则语句如下:
Select major from tb1 where major regexp ‘c*m’;
模式字符 +
其含义为匹配多个该字符之前的字符,包括 1个。
例如:使用“+”表达式查询tb1中major字段中m字符前至少出现一个c字符的记录,则语句如下:
Select major from tb1 where major regexp ‘c+m’;
模式字符 字符串{N}
其含义为匹配字符出现N次。
例如:使用“{N}”表达式查询tb1中major字段中连续出现2次m的记录,则语句如下:
Select major from tb1 where major regexp ‘m{2}’;
模式字符 字符串{M,N}
其含义为匹配字符至少出现M次,做多N次。
例如:使用“{M,N}”表达式查询tb1中major字段中连续出现2次m的记录,最多出现3次m字符的记录,则语句如下:
Select major from tb1 where major regexp ‘a{2,3}’;
*最后就是把以前的
where columnname=’dddd’
的 等于 改为 regexp 后面加个正则表达式就行*