当前位置: 首页 > news >正文

MySQL正则表达式检索数据

目录

一、使用正则表达式进行基本字符匹配

1.使用regexp关键字

2.使用正则表达式  . 

二、进行OR匹配

1.为搜索两个串之一,使用   |  

2.匹配几个字符之一[]

3.匹配范围

 4.匹配特殊字符


过滤数据允许使用匹配、比较、通配符操作来寻找数据,但是随着过滤条件的复杂性增加,WHERE子句本身的复杂性也有必要增加。

正则表达式就是用来匹配文本的特殊字符串(字符集合)。如果想从一个文本文件中提取出来电话号码就可以使用正则表达式。所有种类的程序设计语言、文本编辑器、操作系统等都支持正则表达式。

一、使用正则表达式进行基本字符匹配

示例:在列phone中寻找包含666的所有行

1.使用regexp关键字

输入:select phone from t_user where phone regexp '666' order by phone;

输出:

 以上例子关键字like被regexp替代,看上去非常像like的语句,但是这个语句告诉mysql:regexp后所跟的东西为正则表达式处理。

2.使用正则表达式 

是正则表达式语言中一个特殊的字符,它表示匹配任意一个字符。

示例:找出表中email列中包含“.com”的行

输入:select email from t_user where email regexp '.com' order by email;

输出:

 注意:MySQL中的正则表达式匹配不区分大小写(即,大写、小写 都匹配)。为区分大小写,可以使用BINARY关键字,如:where name regepx binary 'JanePack'。

二、进行OR匹配

1.为搜索两个串之一,使用   |  

示例:寻找表t_user中phone列包含6 或 8 的列

输入:select phone from t_user where phone regexp '6|8' order by phone;

输出:

| 为正则表达式的OR符号。它表示匹配其中之一,因此6和8都匹配并返回。类似于select语句中的OR语句。

2.匹配几个字符之一[]

如果只想匹配特定的字符,可以通过一组 [和] 括起来的字符来完成。

示例:寻找email列中  .com前是3和q的行

输入:select email from t_user where email regexp '[q3].com' order by phone;

输出:

 []是另一种形式的OR语句。正则表达式[q3].com是[q|3].com的缩写,两个都可以使用。但是后者需要用[]来定义OR语句查找。

3.匹配范围

集合可以用来定义要匹配的一个或多个字符。例如[123456789],为了简化这种类型的集合,可以使用 - 来定义一个范围,比如:[1-9],且匹配范围不一定是数值的,也可以是[a-z]。

示例:在t_user表中寻找id在1-4范围内的name行和email行

输入: select name,email from t_user where id regexp '[1-4]';4]';

输出:

 4.匹配特殊字符

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

示例:找出t_user表中email列中有.的name行

输入:select name from t_user where email regexp '\\.' order by name;

输出:

 更多 \\ 来引用的字符:

\\f

换页

\\n换行
\\r回车
\\t制表
\\v纵向制表

注意:为了匹配反斜杠(\)字符本身,需要使用(\\\)。

 

http://www.lryc.cn/news/109016.html

相关文章:

  • vite+ts+vue3 prettier.config.js 不生效问题解决
  • Java源码规则引擎:jvs-rules 8月新增功能介绍
  • 2023年第三届工业自动化、机器人与控制工程国际会议 | IET独立出版 | EI检索
  • 14.2.2 【Linux】software, hardware RAID
  • (学习笔记-进程管理)进程
  • 《Linux从练气到飞升》No.07 Linux第一个小程序-进度条的实现
  • 【NLP概念源和流】 04-过度到RNN(第 4/20 部分)
  • 企业上云实施路线图
  • docker系列--解决hyper-v导致docker无法启动问题
  • socket server服务器开发常见的并发模型
  • 怎么修改pdf文件中的文字?分享几种编辑方法
  • spring — Spring Security 5.7与6.0差异性对比
  • 道本科技受邀参加建筑产业互联网推动建筑产业现代化体系构建座谈会,以数字化产品为建筑行业注入新动能!
  • 数据结构----效率问题
  • 【BASH】回顾与知识点梳理(五)
  • PCL点云处理之最小二乘空间直线拟合(3D) (二百零二)
  • 大数据课程G1——Hbase的概述
  • 第三章 图论 No.2单源最短路之虚拟源点,状压最短路与最短路次短路条数
  • 汉诺塔问题
  • Java on Azure Tooling 6月更新|标准消费和专用计划及本地存储账户(Azurite)支持
  • Prometheus(八)-网络嗅探-黑盒监控
  • modbus TCP 通信测试
  • GDB Debug
  • 【项目流程】前端项目的开发流程
  • JS监听浏览器关闭、刷新及切换标签页触发事件
  • Unity 引擎做残影效果——3、顶点偏移方式
  • 【Linux】权限
  • Excel导入日期格式时自动转为五位数文本
  • Mac使用brew安装软件报错
  • Android 实现MQTT客户端,用于门禁消息推送