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

MySQL篇(高级字符串函数/正则表达式)(持续更新迭代)

目录

讲点一:高级字符串函数

一、简介

二、常见字符串函数

1. CONCAT()

2. SUBSTRING()

3. LENGTH()

4. REPLACE()

5. TRIM()

6. UPPER()

7. LOWER()

8. LEFT()

9. RIGHT()

10. INSTR()

11. LENTH(str)

讲点二:正则表达式

一、简介

二、语法

1. 字符类

2. 重复次数

3. 通配符

4. 选择符

5. 分组

6. 特殊字符

7. 任意数量

8. 图解

三、示例

1. 匹配单个字符

2. 匹配多个字符

3. 匹配重复次数

4. 匹配位置

5. 匹配特定字符串

6. 匹配位数限制

7. 匹配单词


讲点一:高级字符串函数

一、简介

MySQL中内置了很多字符串函数,常用的几个如下:

注意:以下只列举了常用函数,其余查看官方文档

官方文档:MySQL :: MySQL 8.0 参考手册 :: 12.8 字符串函数和运算符

二、常见字符串函数

1. CONCAT()

CONCAT()函数用于连接两个或多个字符串。它接受两个或多个参数,返回它们连接后的字符串。

SELECT CONCAT('Hello',' ','World') AS result;
-- Output: Hello World

2. SUBSTRING()

SUBSTRING()函数可以从一个字符串中截取一段子字符串。

它可以接受三个参数,第一个参数为原始字符串,

第二个参数为要截取的子字符串的起始位置,

第三个参数为要截取的子字符串的长度。

SELECT SUBSTRING('Hello World', 7, 5) AS result;
-- Output: World

3. LENGTH()

LENGTH()函数返回一个字符串的长度。

SELECT LENGTH('Hello World') AS result;
-- Output: 11

4. REPLACE()

REPLACE()函数用于将一个字符串中的部分子字符串替换成另一个字符串。

它可以接受三个参数,第一个参数为原始字符串,第二个参数为要替换的子字符串,第三个参数为替换成的字符串。

SELECT REPLACE('Hello World','World','MySQL') AS result;
-- Output: Hello MySQL

5. TRIM()

TRIM()函数用于从字符串的两端去除空格。它可以接受一个参数,表示要处理的原始字符串。

SELECT TRIM('   Hello World   ') AS result;
-- Output: Hello World

6. UPPER()

UPPER()函数将一个字符串转换为大写字母。

SELECT UPPER('hello world') AS result;
-- Output: HELLO WORLD

7. LOWER()

LOWER()函数将一个字符串转换为小写字母。

SELECT LOWER('HELLO WORLD') AS result;
-- Output: hello world

8. LEFT()

LEFT()函数可以从一个字符串的左端截取一段子字符串。它可以接受两个参数,

第一个参数为原始字符串,

第二个参数为要截取的子字符串的长度。

SELECT LEFT('Hello World', 5) AS result;
-- Output: Hello

9. RIGHT()

RIGHT()函数可以从一个字符串的右端截取一段子字符串。它可以接受两个参数,

第一个参数为原始字符串,

第二个参数为要截取的子字符串的长度。

SELECT RIGHT('Hello World', 5) AS result;
-- Output: World

10. INSTR()

INSTR()函数可以用于查找一个字符串在另一个字符串中出现的位置。

它可以接受两个参数,第一个参数为要查找的字符串,第二个参数为要查找的原始字符串。

SELECT INSTR('Hello World', 'World') AS result;
-- Output: 7

11. LENTH(str)

返回字符串 str 的长度,以字节为单位。一个多字节 字符计数为多个字节。

这意味着对于 包含五个 2 字节字符的字符串,LENGTH() 返回 ,而 CHAR_LENGTH() 返回 。

mysql> SELECT LENGTH('text');
        -> 4

讲点二:正则表达式

一、简介

MYSQL中的正则表达式,主要用于对文本串进行条件筛选的操作,

比如筛选出串中某些带指定数字、符号、子串的部分。

二、语法

1. 字符类

用方括号表示一组字符,例如[A-Z]表示所有大写字母,[a-z]表示所有小写字母,[0-9]表示所有数字,

[^a-z]表示除小写字母之外的所有字符。

2. 重复次数

用花括号表示重复次数,例如a{3}表示a重复3次,a{2,}表示a至少重复2次,a{2,5}表示a重复2到5次。

3. 通配符

用句点表示任意字符,例如a.b表示以a开头,以b结尾,中间任意一个字符的字符串。

4. 选择符

用竖线表示或,例如a|b表示a或b。

5. 分组

用括号表示一组,例如(a|b)c表示ac或bc。

6. 特殊字符

正则表达式中还有一些特殊字符,例如转义字符\、行首符^、行尾符$等。

7. 任意数量

*是一个限定符,用来修饰前一个字符或分组,限定匹配重复的数量为任意数量。

例如:

正则表达式 a* 可以匹配 a aa aaa aaaa aaaaaaa等等

正则表达式 (ab)* 可以匹配 ab abababab ababababababab等等

需要注意个是,*与+不同,+要求重复数量至少为1,*则可以为0,所以字符串为空也是可以匹配的。

以下是常用的限定符代码:

  • * 重复零次或更多次
  • + 重复一次或更多次
  • ? 重复零次或一次
  • {n} 重复n次
  • {n,} 重复n次或更多次
  • {n,m} 重复n到m次

8. 图解

三、示例

1. 匹配单个字符

使用点号 . 可以匹配任意一个字符:

SELECT * FROM users WHERE name REGEXP 'm.n';

2. 匹配多个字符

使用方括号 [] 可以匹配一组字符:

SELECT * FROM users WHERE name REGEXP '[aeiou]';

3. 匹配重复次数

使用花括号 {} 可以匹配一定数量的字符:

SELECT * FROM users WHERE name REGEXP 'm{2,3}';

4. 匹配位置

使用脱字符 ^ 和美元符号 $ 可以匹配字符串的开头和结尾:

SELECT * FROM users WHERE name REGEXP '^m';

5. 匹配特定字符串

使用竖线 | 可以匹配多个字符串中的一个:

SELECT * FROM users WHERE name REGEXP 'john|mary|bob';

6. 匹配位数限制

使用星号 *,加号 + 和问号 ? 可以匹配一定位数的字符:

SELECT * FROM users WHERE name REGEXP '.{4,6}';

7. 匹配单词

使用圆括号 () 可以匹配整个单词:

SELECT * FROM users WHERE name REGEXP '(john|mary) smith';


http://www.kler.cn/news/316631.html

相关文章:

  • Web端云剪辑解决方案,BS架构私有化部署,安全可控
  • 【ARM】A64指令介绍及内存屏障和寄存器
  • 借用连接1-怎么从目标数据源借用连接
  • 【题解-力扣189. 轮转数组(java实现O(1)空间要求)】
  • Python3爬虫教程-HTTP基本原理
  • 数据结构--单链表创建、增删改查功能以及与结构体合用
  • Java 入门指南:JVM(Java虚拟机)—— 双亲委派模型(Parent Delegation Model)
  • 2024短剧系统开发,付费短剧小程序app源码教程,分销功能讲解搭建上线
  • 【UI自动化】前言
  • 服务器相关问题
  • 机器学习及其应用领域【金融领域】
  • css 控制虚线刻度尺寸
  • 【手写数据库内核组件】1001词法分析器,语言被程序识别的第一步,将语句分解为最小词根token
  • Qt 模型视图(二):模型类QAbstractItemModel
  • 可智能生成刺绣图案!武汉纺织大学可视计算与数字纺织团队发布首个多缝线刺绣生成对抗网络模型,被顶级期刊 TVCG 录用
  • 后端开发刷题 | 最长无重复子数组
  • ArcGIS Pro SDK (十六)公共设施网络 1 网络管理
  • 人工智能与机器学习原理精解【22】
  • 深度学习-16-深入理解BERT基于本地数据微调训练文本分类模型的流程
  • SQL语法学习指南
  • 9月23日
  • Shiro rememberMe反序列化漏洞(Shiro-550) 靶场攻略
  • 水下攻防面试题
  • 『功能项目』QFrameWork拾取道具UGUI【69】
  • 深度学习速通系列:什么是文本数据标注
  • 《SmartX ELF 虚拟化核心功能集》发布,详解 80+ 功能特性和 6 例金融实践
  • 高级大数据开发协会
  • PHP邮件发送教程:如何用PHP发送电子邮件?
  • 4.结构型设计模式 - 第1回:引言与适配器模式 (Adapter Pattern) ——设计模式入门系列
  • Vulkan 学习(8)---- vkImageView 创建