MySQL基础查询篇(10)-正则表达式的基础使用

正则表达式在MySQL数据库中是非常强大且常用的功能,它可以帮助我们快速的匹配和处理文本数据。在MySQL中,正则表达式的使用可以通过正则表达式函数来实现。

MySQL中常用的正则表达式函数有:

  1. REGEXP/RLIKE:通过正则表达式进行模式匹配。
  2. REGEXP_REPLACE/REGEXP_REPLACE_NTH:通过正则表达式进行字符串替换。
  3. REGEXP_INSTR:通过正则表达式检索字符串中特定的位置。
  4. REGEXP_SUBSTRING/REGEXP_SUBSTRING_INDEX:通过正则表达式进行字符串截取。
  5. REGEXP_LIKE:检查给定的字符串是否与正则表达式匹配。

接下来,我们将详细介绍MySQL中正则表达式的基础使用。

1. REGEXP/RLIKE函数

REGEXP/RLIKE函数用于在文本中搜索正则表达式的匹配项。它的语法如下:

SELECT column_name FROM table_name WHERE column_name REGEXP "pattern";

示例:

假设我们有一个名为employees的表,其中有一个名为name的列,我们想查询所有以"M"开头的员工姓名,可以使用以下语句:

SELECT name FROM employees WHERE name REGEXP "^M";

上述示例中的正则表达式^M表示以"M"开头的字符。

2. REGEXP_REPLACE/REGEXP_REPLACE_NTH函数

REGEXP_REPLACE/REGEXP_REPLACE_NTH函数用于通过正则表达式进行字符串替换。它的语法如下:

SELECT REGEXP_REPLACE(string, pattern, replacement) FROM table_name;

示例:

假设我们有一个名为contacts的表,其中有一个名为phone_number的列,我们想将所有的手机号码中的"-"字符替换为空格,可以使用以下语句:

SELECT REGEXP_REPLACE(phone_number, "-", " ") FROM contacts;

上述示例中,我们将"-"替换为一个空格字符。

3. REGEXP_INSTR函数

REGEXP_INSTR函数用于从给定字符串中查找正则表达式的位置。它的语法如下:

SELECT REGEXP_INSTR(string, pattern) FROM table_name;

示例:

假设我们有一个名为products的表,其中有一个名为description的列,我们想查找所有描述中包含"red"的行,并返回其位置,可以使用以下语句:

SELECT REGEXP_INSTR(description, "red") FROM products;

上述示例中,我们查找包含"red"字符串的位置。

4. REGEXP_SUBSTRING/REGEXP_SUBSTRING_INDEX函数

REGEXP_SUBSTRING/REGEXP_SUBSTRING_INDEX函数用于通过正则表达式进行字符串截取。它的语法如下:

SELECT REGEXP_SUBSTRING(string, pattern) FROM table_name;

示例:

假设我们有一个名为orders的表,其中有一个名为order_id的列,我们想提取所有订单编号中的数字部分,可以使用以下语句:

SELECT REGEXP_SUBSTRING(order_id, "[0-9]+") FROM orders;

上述示例中,我们使用正则表达式[0-9]+匹配数字部分。

5. REGEXP_LIKE函数

REGEXP_LIKE函数用于检查给定的字符串是否与正则表达式匹配。它的语法如下:

SELECT REGEXP_LIKE(string, pattern) FROM table_name;

示例:

假设我们有一个名为products的表,其中有一个名为product_name的列,我们想查询所有产品名称中包含至少一个大写字母的行,可以使用以下语句:

SELECT product_name FROM products WHERE REGEXP_LIKE(product_name, "[A-Z]");

上述示例中,我们使用正则表达式[A-Z]检查是否包含至少一个大写字母。

以上就是MySQL数据库中正则表达式的基础使用。通过正则表达式函数,我们可以灵活地进行模式匹配、字符串替换、位置检索和字符串截取操作。使用正则表达式可以极大地简化查询和处理文本数据的过程,提高工作效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/673842.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java Map集合相关介绍和方法使用操作

Java的Map集合是存储键值对的一种数据结构。在Map中,每个键都是唯一的,用来标识该键值对。 Map接口是java.util包中的一部分,它有多个实现类,包括HashMap,TreeMap,LinkedHashMap等。 下面是Map接口的一些…

Docker的镜像和容器的区别

1 Docker镜像 假设Linux内核是第0层,那么无论怎么运行Docker,它都是运行于内核层之上的。这个Docker镜像,是一个只读的镜像,位于第1层,它不能被修改或不能保存状态。 一个Docker镜像可以构建于另一个Docker镜像之上&…

P2957

题目描述 The cows enjoy mooing at the barn because their moos echo back, although sometimes not completely. Bessie, ever the excellent secretary, has been recording the exact wording of the moo as it goes out and returns. She is curious as to just how mu…

numa网卡绑定

#概念 参考:https://www.jianshu.com/p/0f3b39a125eb(opens new window) chip:芯片,一个cpu芯片上可以包含多个cpu core,比如四核,表示一个chip里4个core。 socket:芯片插槽,颗,跟…

Sping Cloud Hystrix 参数配置、简单使用、DashBoard

Sping Cloud Hystrix 文章目录 Sping Cloud Hystrix一、Hystrix 服务降级二、Hystrix使用示例三、OpenFeign Hystrix四、Hystrix参数HystrixCommand.Setter核心参数Command PropertiesFallback降级配置Circuit Breaker 熔断器配置Metrix 健康统计配置Request Context 相关参数C…

Docker容器监控-CIG

目录 一、CIG说明 1. CAdvisor 2. InfluxDB 3. Grafana 二、环境搭建 1. 创建目录 2. 编写 docker-compose.yml 3. 检查并运行容器 三、进行测试 1. 查看 influxdb 存储服务 是否能正常访问 2. 查看 cAdvisor 收集服务能否正常访问 3. 查看 grafana 展现服务&#…

金融行业专题|证券超融合架构转型与场景探索合集(2023版)

更新内容 更新 SmartX 超融合在证券行业的覆盖范围、部署规模与应用场景。新增操作系统信创转型、Nutanix 国产化替代、网络与安全等场景实践。更多超融合金融核心生产业务场景实践,欢迎阅读文末电子书。 在金融行业如火如荼的数字化转型大潮中,传统架…

路由器如何映射端口映射?

在现代互联网中,随着网络应用的不断发展,很多用户需要进行远程访问或搭建服务器来满足自己的需求。由于网络安全的原因,直接将内网设备暴露在公网中是非常危险的。为了解决这个问题,路由器映射端口映射技术应运而生。本文将介绍什…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Span组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Span组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Span组件 鸿蒙(HarmonyOS)作为Text组件的子组件&#xff0…

C#基础-线程暂停方案之重置事件

默认情况下,一个线程的特定指令相对于另一个线程中的指令的执行时机是不确定的,如果想要对这种不确定性进行控制,其中一种办法就是使用重置事件(虽然称为事件,但是跟C#的委托跟事件没关系)。 重置事件用于…

uniapp 开发App 权限授权 js-sdk

从官网的插件市场下载的: 直接上代码: /*** 本模块封装了Android、iOS的应用权限判断、打开应用权限设置界面、以及位置系统服务是否开启*/var isIos // #ifdef APP-PLUS isIos (plus.os.name "iOS") // #endif// 判断推送权限是否开启 fu…

Excel VBA exit退出循环

Excel VBA exit退出循环 exit for退出for循环,exit do用于退出do 或 do while循环: 获取非空行 Function GetNotNullRow(ByVal iStartRow, ByRef iRow) Dim Rng As Range For Each Rng In Range(“B” & iStartRow & “:” & “P” & …

【开源】JAVA+Vue+SpringBoot实现公司货物订单管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 客户管理模块2.2 商品维护模块2.3 供应商管理模块2.4 订单管理模块 三、系统展示四、核心代码4.1 查询供应商信息4.2 新增商品信息4.3 查询客户信息4.4 新增订单信息4.5 添加跟进子订单 五、免责说明 一、摘要 1.1 项目…

微信小程序新手入门教程四:样式设计

WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,决定了 WXML 的组件会怎么显示。 WXSS 具有 CSS 大部分特性,同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。与 CSS 相比,WXSS …

Tkinter教程21:Listbox列表框+OptionMenu选项菜单+Combobox下拉列表框控件的使用+绑定事件

------------★Tkinter系列教程★------------ Tkinter教程21:Listbox列表框OptionMenu选项菜单Combobox下拉列表框控件的使用绑定事件 Tkinter教程20:treeview树视图组件,表格数据的插入与表头排序 Python教程57:tkinter中如何…

Flink Format系列(2)-CSV

Flink的csv格式支持读和写csv格式的数据,只需要指定 format csv,下面以kafka为例。 CREATE TABLE user_behavior (user_id BIGINT,item_id BIGINT,category_id BIGINT,behavior STRING,ts TIMESTAMP(3) ) WITH (connector kafka,topic user_behavior…

Python中的权限控制

面向对象的三大特征: 1.封装:隐藏内部细节,对外提供操作方式。 权限控制:是通过对属性或方法添加单下划线、双下划线以及首尾下划线来实现 单下划线开头:以单下划线开头的属性或方法表示protected受保护的成员&…

GPT4_VS_ChatGPT(from_nytimes)

GPT4 VS ChatGPT(from nytimes ) 正如文章官网博文:https://openai.com/research/gpt-4所述,GPT4仍有很多不足之处,还不及人类水平。纽约时报报道了一些人体验GPT4的效果和一些评价: Cade Metz 要求专家使…

什么是制动电阻器?工作及其应用

电梯、风力涡轮机、起重机、升降机和电力机车的速度控制是非常必要的。因此,制动电阻器是这些应用不可或缺的一部分,因为它们是电动机驱动器中最常用的高功率电阻器,用于控制其速度,在运输、海事和建筑等行业中。 电动火车主要比柴…

navigator.mediaDevices.getUserMedia获取本地音频/麦克权限并提示用户

navigator.mediaDevices.getUserMedia获取本地音频/麦克权限并提示用户 效果获取权限NotFoundErrorNotAllowedError 代码 效果 获取权限 NotFoundError NotAllowedError 代码 // 调用 captureLocalMedia()// 方法 function captureLocalMedia() {console.warn(Requesting lo…