使用政策表达式查询sql数据库
2015-09-05 20:27
405 查看
正则表达式是用某种模式去匹配一类字符串的一种方式。正则表达式的查询能力比统配字符的查询能力更强大,而且更加灵活。
在mysql中,使用regexp关键字来匹配查询正则表达式。其基本形式如下:
字段名 regexp '匹配方式'
字段名: 需要查询的字段名称;
匹配方式: 以哪种方式来进行匹配查询。支持的模式匹配字符如下表:
其实这里的正则表达式与java语言、php语言等变成语言中的正则表达式基本一致。
在mysql中,使用regexp关键字来匹配查询正则表达式。其基本形式如下:
字段名 regexp '匹配方式'
字段名: 需要查询的字段名称;
匹配方式: 以哪种方式来进行匹配查询。支持的模式匹配字符如下表:
模式字符 | 含义 | 应用举例 |
^ | 匹配以特定字符或字符串开头的记录 | 查询A表中books字段以字母php开头的记录: select books from A where books regexp '^php'; |
$ | 匹配以特定字符或字符串结尾的记录 | 查询A表中books字段以字母php结尾的记录: select books from A where books regexp 'php$'; |
. | 匹配字符串的任意一个字符,包括回车和换行 | 查询A表中books字段包含字母p的记录: select books from A where books regexp 'p.'; |
[字符集合] | 匹配”字符集合“中的任意一个字符 | 查询A表中books字段包含PCA的记录: select books from A where books regexp '[PCA]'; |
[^字符集合] | 匹配除”字符集合“以外的任意一个字符 | 查询A表中books字段包含c-z字母以外的记录: select books from A where books regexp '^c-z'; |
S1|S2|S3 | 匹配S1,S2,S3中的任意一个字符串 | 查询A表中books字段中包含php、c或者java字符中任意一个字符的记录: select books from A where books regexp 'php|c|java'; |
* | 匹配多个该符号之前的字符,包括0和1个 | 查询A表中books字段中A字母前出现过J字符的记录: select books from A where books regexp 'J*A'; |
+ | 匹配多个该符号之前的字符,包括1个 | 查询A表中books字段中A字母前出现过J字符的记录: select books from A where books regexp 'J+A'; |
字符串{N} | 匹配字符串出现N次 | 查询A表中books字段中出现3次a字符的记录: select books from A where books regexp 'a{3}'; |
字符串{M,N} | 匹配字符串至少出现M次,最多出现N次 | 查询A表中books字段中最少出现2次,最多出现4次a字符的记录: select books from A where books regexp 'a{2,4}'; |
相关文章推荐
- sql注入基础
- 如何利用一个数据库中间件扩展MySQL集群——kingshard使用指南
- mysql常用命令
- Redis特点和安装
- 【数据库学习】机房收费系统(二)组合查询
- SQL是写在程序里还是存储过程中好?
- mysql外连接查询用法
- mongodb常用命令
- sql server 排名函数:DENSE_RANK
- 【扫盲】什么是Redis
- 使用淘宝中间件cobar实现mysql分库分表
- Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!
- 利用nginx+lua+memcache实现灰度发布
- mysql中engine=innodb和engine=myisam的区别
- MySQL的基础命令
- oracle数据文件被误删除后无法启动数据库的解决办法
- 在oracle官网下载javaee等api离线文档
- 转载 Memcached BinaryProtocol incr指令内存泄露的bug
- mysql open files
- openresty redis configuration --脚本百事通