Regex与Like的关系
Mysql中我们经常会用到正则表达式就是Like filed like '%?%' 。但是有时对于一些复杂场景下的正则过滤,单单一个like就显得有些力不从心了

Regex的精华就是 '' , like '%%' = regex '',特殊字符如^、$可以改变%的意思。

  • like '%304%' = regex '304'
  • like '张%' = regex '^张'
  • like '%03' = regex '03$'
  • like '%3%' or like '%4%' = regex '[34]' 一个字段包含3或者包含4
  • like '%3%' or like '%4%' = regex '3|4' 一个字段包含3或者包含4 
# 示例SQL---
# '' 匹配fw_ver字段中包含'304'字符串的所有数据:
select * from tbl_upgrade_policy where fw_ver like '%304%';
select * from tbl_upgrade_policy where fw_ver REGEXP '304'; # ^ 匹配输入字符串的开始位置
# 查找operator字段已'张'开头的记录
select * from tbl_upgrade_policy where operator like '张%';
select * from tbl_upgrade_policy where operator regexp '^李'; # $ 匹配输入字符串的结束位置
# 查找operator字段已'03'结尾的记录
select * from tbl_upgrade_policy where operator like '%03';
select * from tbl_upgrade_policy where operator regexp '03$'; # [...] 字符集合,匹配所包含的任意一个字符。
# 查询出update_type字段下为3或4或5中的任意数字
select * from tbl_upgrade_policy where update_type like '%3%' or update_type like '%4%' or update_type like '%5%';
select * from tbl_upgrade_policy where update_type REGEXP '[345]'; # p1|p2|p3 匹配 p1 或 p2 或 p3。
select * from tbl_upgrade_policy where update_type like '%3%' or update_type like '%4%';
select * from tbl_upgrade_policy where update_type REGEXP '3|4'; select * from tbl_upgrade_policy where update_type like '3%' or update_type like '%5'; # 注意:'^[3,5]' 匹配以 3或,或5开头的记录
select * from tbl_upgrade_policy where update_type REGEXP '^[3,5]|4$'; # '^3,5' 匹配以 3,5 开头的记录
select * from tbl_upgrade_policy where update_type REGEXP '^3,5|2$';

  

Mysql之正则匹配的更多相关文章

  1. MySQL之正则

    八:正则匹配: 语法: select * from 表名 where 字段名 regexp "正则表达式"; PS:MySQL中正则匹配,不能使用\w等字幕作为匹配

  2. mysql正则匹配中文时存在的问题

    可以看到,目前正则匹配字母没问题,c出现1次,2次,3次匹配的结果都是正常的 接下来我们看看匹配中文的效果 可以看到,当匹配连续出现歪时,结果就开始不正常了 然后我去看了下mysql的中文文档中关于正 ...

  3. MySQL全面瓦解8:查询的正则匹配

    概述 上一章 查询的过滤条件,我们了解了MySQL可以通过 like % 通配符来进行模糊匹配.同样的,它也支持其他正则表达式的匹配,我们在MySQL中使用 REGEXP 操作符来进行正则表达式匹配. ...

  4. Aho-Corasick算法、多模正则匹配、Snort入门学习

    希望解决的问题 . 在一些高流量.高IO的WAF中,是如何对规则库(POST.GET)中的字符串进行多正则匹配的,是单条轮询执行,还是多模式并发执行 . Snort是怎么组织.匹配高达上千条的正则规则 ...

  5. 正则匹配闭合HTML标签(支持嵌套)

    任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题.关于正则引擎的原理,推荐<Mastering R ...

  6. 正则匹配抓取input 隐藏输入项和 <td>标签内的内容

    这里不多作解释了,只要提供方法,如果想了解正则匹配,就去百度. 第一条是,匹配出所有的隐藏输入域 $patern = "/<input(.*?)type=\"hidden\& ...

  7. js正则匹配的一个日常应用

    应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var ...

  8. 详解一个自己原创的正则匹配IP的表达式

    这里给大家详细讲解一下一个匹配IP地址的正则表达式, 有关正则方面的知识,会在详细的讲解中提到. 在讲解之前,我先给大家介绍一下,ip地址的生成规则. IP地址,是由32位数字二进制转为四个十进制的字 ...

  9. 正则匹配中 ^ $ 和 \b 的区别

    正则匹配中 ^ $ 和 \b 的区别     ^和$分别代表字符串的开始和结束,因此^\d$只能匹配包含一个数字的字符串\b代表单词边界,其前后必须是不同类型的字符,可以组成单词的字符为一种类型,不可 ...

随机推荐

  1. exif_imagetype() 函数在linux下的php中不存在

    1.问题,项目中上传文件使用插件时,windows上支持函数exif_imagetype(),而在linux上不支持. 2.PHP exif_imagetype的本质 PHP exif_imagety ...

  2. YII2与Thinkphp整合阿里云OSS

    前言: 如果上传的文件都和网站程序源代码放在一起:那是有相当多的弊端的: 1:静态文件会占用大量带宽: 2:服务器的成本略高: 常规的做法是把php源代码放到一台服务器上:图片等静态文件放在另一台服务 ...

  3. php和js实现文件拖拽上传

    Dropzone.js实现文件拖拽上传 http://www.sucaihuo.com/php/1399.html demo http://www.sucaihuo.com/jquery/13/139 ...

  4. 【转】Native Thread for Win32 A- Create Thread(通俗易懂,非常好)

    http://www.bogotobogo.com/cplusplus/multithreading_win32A.php Microsoft Windows operating system's s ...

  5. Linux网卡命名enp3s0说明

    用了很多年Linux的我在升级Ubuntu 16.04之后竟然发现我的以太网卡的名字竟然不是eth0,变成了enp3s0,每次想要修改什么配置,都要先ifconfig查一下网卡名,真是让我很郁闷! 去 ...

  6. Node.js的全局对象和全局变量

    http://blog.csdn.net/leftfist/article/details/41877279

  7. Spark源代码阅读笔记之MetadataCleaner

    MetadataCleaner执行定时任务周期性的清理元数据(metadata),有6种类型的元数据:MAP_OUTPUT_TRACKER.executor跟踪各个map任务输出的存储位置的数据,依据 ...

  8. 使用javascript来访问本地文件夹

    常用的.net 的aspx文件由于运行在服务器端,并不具有访问用户本地文件夹的权限,导致类似于<a href="file:///d:/backup" > open fo ...

  9. Android ListView的监听事件

    Android开发时,最常用的控件之一就是ListView了,而使用ListView的同时,必然需要对它设置监听器,常用的监听器有这么几个1.OnItemClickListener 2.OnTouch ...

  10. angular4 常用pipe管道

    angular中的pipe是用来对输入的数据进行处理,如大小写转换.数值和日期格式化等. 常用的pipe有 1. 大小写转换 <p>{{str | uppercase}}</p> ...