Mysql中使用正则表达式查询
正则表达式是一种用特定模式匹配字符串的方式,其查询能力远超通配字符,并且更加灵活。下面将以mysql中的查询为例,讲解如何使用正则表达式进行查询。
使用REGEXP关键字匹配查询
在mysql中,使用REGEXP关键字来匹配查询正则表达式。基本形式如下:
查询字段名 REGEXP '所需匹配方式'
给出一个表的结构并提供一些实例数据,方便讲解时使用。假设表名为tb1。
模式字符 ^
^表示匹配以特定字符或字符串开头的记录。例如,使用"^"表达式查询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.';
模式字符 [字符集合]
[字符集合]表示匹配字符集合中任意一个字符。例如,使用"[456]"表达式查询tb1中number字段包含456的记录,则语句如下:
Select number from tb1 where major regexp '[456]';
模式字符 S1|S2|S3
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';
模式字符
表示匹配多个该字符之前的字符,至少一个。例如,使用" "表达式查询tb1中major字段中m字符前至少出现一个c字符的记录,则语句如下:
Select major from tb1 where major regexp 'c m';
模式字符 {N}
{N}表示匹配字符出现N次。例如,使用"{2}"表达式查询tb1中major字段中连续出现2次m的记录,则语句如下:
Select major from tb1 where major regexp 'm{2}';
模式字符 {M,N}
{M,N}表示匹配字符至少出现M次,最多出现N次。例如,使用"{2,3}"表达式查询tb1中major字段中连续出现2到3次m的记录,则语句如下:
Select major from tb1 where major regexp 'a{2,3}';
在mysql中,正则表达式的使用与其他编程语言基本一致。希望以上内容对大家的学习有所帮助。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。