Mysql使用正则表达式-regexp
2016-01-18 18:29
567 查看
正则表达式是用某种模式去匹配一类字符串的一种方式,其查询能力要远在通配字符之上。
在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 后面加个正则表达式就行*
在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 后面加个正则表达式就行*
相关文章推荐
- 启动mysql错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
- 启动mysql错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
- mysql关于排除表中重复数据
- mysql数据库——源码安装
- Windows下MySQL5.7.10免安装配置
- Mysql 从零开始(五)函数之字符串函数
- 完成wamp安装后Mysql配置记录
- 【转】解决MySQL主从复制不一致的情况
- mysql存储过程详解
- 利用端口转发访问VirtualBox虚拟机中的MySQL
- mysql查询分组归类函数-group_concat,通常与group_by一起使用
- nodejs 安装mysql、socket.io 插件
- MySql Lock wait timeout exceeded
- 【20】MySQL数据库
- mysql 使用
- MySql截取DateTime字段的日期值
- Mysql连接错误:Mysql Host is blocked because of many connection errors
- mysql重启命令
- MYSQL 的一些文件及说明
- 浅析Mysql Join语法以及性能优化