一、正则与LIKE的区别

Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符、字符串。

例如:select * from wp_posts where post_name REGEXP'hello',可以检索出列post_name中所有包含hello的行

REGEXP'.og'.是正则表达式中里一个特殊的字符。它表示匹配一个字符,因此,dog,hog,mog等等都能匹配。

注意:

关于LIKE和REGEXP的区别:LIKE匹配整个列。如果被匹配的文本仅在列值中出现,LIKE并不会找到它,相应的行也不会返回(当然,使用通配符除外)。而REGEXP在列值内进行匹配,如果被匹配的匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回,这时一个非常重要的差别(当然,如果适应定位符号^和$,可以实现REGEXP匹配整个列而不是列的子集)。

关于大小写的区分:MySQL中正则表达式匹配(从版本3.23.4后)不区分大小写。如果要区分大小写,应该使用BINARY关键字,如where post_name REGEXP BINARY 'Hello.000'

二、基本字符匹配

检索列prod_name 包含文本1000的所有行:

进行OR匹配相当于:或操作 “|”

匹配几个字符之一只想匹配特定的字符。 可以通过指定一组用[和]括起来的字符来完成。

[456]定义了一组字符,他的意思是匹配4或5或6. []是另一种形式的OR语句。[456]是[4|5|6]的缩写。匹配范围

[1-3] a-z都是合法的范围

匹配特殊字符

正则表达式语言由特殊含义的特殊字符构成。

. 在正则表达式中表示匹配任何一个字符

比如匹配prod_name中包括on字符串的行:

那如何匹配.,[],|,-?

为了匹配特殊字符,必须用\\为前导。 比如\\.表示查找·

匹配字符类

匹配多个实例

再比如 匹配连在一起的4位数字:

sticks? : s后的?使s可选,因为?匹配它前面紧跟的任何字符的0次或者1次出现。

[:digit:]匹配任意数字,因而它为数字的一个集合。{4}确切地要求它前面的字符出现4次。

所以[:digit:]{4}匹配连在一起的任意4位数字。

三、定位符

目前为止所有例子都是匹配一个串中任意为止的文本。为了匹配特定为止的文本,需要使用定位符。

也可以在不使用数据库的情况下测试正则表达式的正确性:

SELECT 来测试正则表达式,REGEXP检查总是返回0或1,

SELECT 'HELLO‘ REGEXP '0‘//返回为0

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php mysql 正则表达式_MYSQL使用正则表达式过滤数据_MySQL相关推荐

  1. mysql在查询结果中添加数据_MySQL将查询结果插入到数据表中

    转自Mysql教程:http://www.baike369.com/content/?id=5582 MySQL将查询结果插入到数据表中 INSERT语句还可以将SELECT语句查询出来的数据插入到另 ...

  2. mysql恢复某张表的数据_mysql恢复某张表

    在Mysqldump官方工具中,如何只恢复某个库呢? 全库备份 [root@HE1 ~]# mysqldump -uroot -p --single-transaction -A --master-d ...

  3. mysql防止从节点可写数据_mysql主从复制及mycat读写分离

    登录#.#.190.163的服务器,在服务器上配置: vim /etc/my.cnf [mysqld] 在此添加如下配置,其中163为服务器的ip最后一位 server_id=163 需要复制的数据库 ...

  4. mysql必知必会的数据_MySQL必知必会--汇 总 数 据

    聚集函数 我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提 供了专门的函数.使用这些函数,MySQL查询可用于检索数据,以便分 析和报表生成.这种类型的检索例子有以下几种. 确定表中行数 ...

  5. mysql防止从节点可写数据_mysql 主从数据不一致 Slave_SQL_Running: No 解决方法

    在slave服务器上通过如下命令 MysqL> show slave status\G; 显示如下情况: Slave_IO_Running: Yes Slave_sql_Running: No ...

  6. mysql 异常关机后 无法查数据_MySQL数据库非法关机造成数据表损坏怎么排查 | 学步园...

    该篇文章我们介绍由于非法硬件关机,造成了MySQL数据库的数据表损坏,数据库不能正常运行的一个实例.下面学步园小编来讲解下MySQL数据库非法关机造成数据表损坏怎么排查? MySQL数据库非法关机造成 ...

  7. mysql删除以什么开头的数据_Mysql如何删除以“#sql-”开头的临时表

    Mysql如何删除以"#sql-"开头的临时表 现象:在重建索引后,发现Mysql服务器的磁盘空间快满了 在用如下命令重建索引 mysql> alter table skat ...

  8. mysql一次读取500条数据_mysql批量插入500条数据

    表格结构如下 需求name和password字段,生成如下格式: 总共批量生成500个. 解决思路:可以用mysql 存储过程 如果linux环境下可以用shell 我们先测试第一种,用存储过程.DE ...

  9. mysql查询每个用户第一条数据_MySQL数据库订单表按用户邮箱字段分组查询每个用户的第一条记录...

    程序开发或者一些数据统计时,在MySQL中使用GROUP BY分组是很常用的SQL语句.那么,如果如下的简单示例订单数据表,我们现需要使用GROUP BY分组后查询每个用户的第一个订单记录,应该如何实 ...

最新文章

  1. 《从零开始学Swift》学习笔记(Day 6)——哎呀常量和变量都该什么时候用啊?...
  2. hdu4814 模拟(黄金分割进制转换)
  3. 我们在囧途之技术骨干篇
  4. 华为鸿蒙系统确认适配高通,华为鸿蒙系统确认适配高通/联发科手机!曝OV魅族有意采用...
  5. python_面向对象进阶之多继承
  6. String s=new String(abc)创建了2个对象的原因
  7. BZOJ 1016 最小生成树计数 【模板】最小生成树计数
  8. 自定义的OnFileSaveAs函数无法响应
  9. 1069. 微博转发抽奖(20)
  10. pytorch:固定部分层参数,固定单个模型
  11. Pytest-ordering自定义用例执行顺序
  12. 如何实现一个遵从设计原则的积分兑换系统2
  13. 课程设计-工资管理系统
  14. Java - HuTool 使用 PhoneUtil、ReUtil等工具类(三)
  15. 萤石云开放平台java_萤石云控制代码
  16. LinkList L 与LinkList L(LNode* L , LNode* L)的区别
  17. 微信小程序静态页面的实现
  18. JavaScript程序库jQuery学习笔记分享(二)jQuery对象和DOM操作,和其他js库冲突处理
  19. 关于已移除sd卡,手机不认卡的原因和解决办法(转)
  20. 一个简洁的背单词、背短语python程序——英文背记系统(自用)

热门文章

  1. (10)调用门提权(无参数)
  2. 安洵杯——game(混淆控制流平坦化)
  3. VMprotect静态跟踪 字节码反编译
  4. Web 文件管理器elFinder 的漏洞链分析
  5. Windows保护模式学习笔记(一)—— 段寄存器GDT表
  6. 设计模式C++实现(10)——桥接模式
  7. 5.1.5 IO核心子系统
  8. 3.1.7 基本地址变换机构
  9. shiro整合ehcache
  10. html的meta用法