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.xdnf.cn/news/142299.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Defining Additional PhysicalConstraints

步骤3:定义附加物理 约束条件 在此步骤中,您将定义设计的其他物理约束,例如 PACKAGE_PIN和禁止约束。 1.选择布局→I/O规划,从布局选择器打开I/O规划视图布局 在工具栏菜单中。 I/O规划视图布局显示包窗口以及I/O端口和 封装引脚窗…

华为地图服务 - 如何开启和展示“我的位置”? -- HarmonyOS自学10

一. 场景介绍 本章节将向您介绍如何开启和展示“我的位置”功能,“我的位置”指的是进入地图后点击“我的位置”显示当前位置点的功能。效果如下: 二. 接口说明 “我的位置”功能主要由MapComponentController的方法实现,更多接口及使用方法…

学习笔记(一)

前言 一、对象 1、由类建模而成,是消息、数据和行为的组合 2、可以接收和发送消息,并利用消息进行彼此的交互。消息要包含传送给对象接收的信息 3、类的实例化:把类转换为对象的过程叫类的实例化。 4、对象的特性 (1) 对象有状态&#…

QUIC的loss detection学习

PTO backoff backoff 补偿 /ˈbkɒf/PTO backoff 是QUIC(Quick UDP Internet Connections)协议中的一种机制,用于处理探测超时(Probe Timeout, PTO)重传策略 它逐步增加探测超时的等待时间,以避免网络拥塞…

【FreeRTOS】任务

1.使用stm32cubemx配置freertos 2.创建任务 我们需要在MX_FREERTOS_Init()里面创建任务 我们根据上面的任务创建方式,实现GPIO_PIN_10的反转 1.任务句柄 2.任务结构体 3.任务执行函数 4.任务函数声明 5.创建线程执行任务 hal_delay和osDelay区别?…

Qt (17)【Qt 文件操作 读写保存】

阅读导航 引言一、Qt文件概述二、输入输出设备类三、文件读写类四、文件和目录信息类五、自定义“记事本” 引言 在上一篇文章中,我们学习了Qt的事件处理机制,知道了如何响应用户的操作。但应用程序常常还需要处理文件,比如读写数据。所以&a…

应用软件系统开发 实操一:任务需求描述

一、实操一:任务需求描述 软件和信息技术服务业数据统计平台是一个为不同级别管理员提供定制化服务的系统。它主要面向数据管理员和系统运维管理员,每一种用户角色各自拥有特定的功能权限。系统运维管理员是专门针对平台基础功能的管理人员,它…

08_Python数据类型_字典

Python的基础数据类型 数值类型:整数、浮点数、复数、布尔字符串容器类型:列表、元祖、字典、集合 字典 字典(Dictionary)是一种可变容器模型,它可以存储任意类型对象,其中每个对象都存储为一个键值对。…

如何评估土壤功能?瓦赫宁根大学研究团队在土壤学一区TOP期刊最新成果给出答案!

本文首发于“生态学者”微信公众号! 土壤健康是农业可持续发展的关键因素之一,而土壤有机碳(Soil Organic Carbon, SOC)含量是衡量土壤健康最常用的指标。然而,许多土壤功能不仅受SOC总量的影响,还与其质量…

FreeRTOS学习——链表list

FreeRTOS学习——链表(列表)list,仅用于记录自己阅读与学习源码 FreeRTOS Kernel V10.5.1 参考大佬的好文章: freertos内核原理 Day1(链表) FreeRTOS-链表的源码解析 *list_t只能存储指向list_item_t的指针。每个list_item_t都…

photozoom classic 9解锁码2024年最新25位解锁码

photozoom classic 9 破解版顾及比恐龙还要稀有,我曾经和你一样一直再找,找了好几个月,也没有找到真的破解版,下载很多次, 都是病毒插件之类的 我昨天下了几次,没有一个不附带插件病毒木马的.......&#x…

基于深度学习的图像分类或识别系统(含全套项目+PyQt5界面)

目录 一、项目界面 二、代码实现 1、网络代码 2、训练代码 3、评估代码 4、结果显示 三、项目代码 一、项目界面 二、代码实现 1、网络代码 该网络基于残差模型修改 import torch import torch.nn as nn import torchvision.models as modelsclass resnet18(nn.Modul…

数据结构(2):LinkedList和链表[2]

我们在上一篇文章中着重讨论了单链表的实现。其中我们要注意单链表进行遍历时一步一步走的思想。那么这篇文章我们将继续讨论链表的更多内容,那就让我们开始吧。 1.经典单链表算法题 我们将通过几个经典的题对单链表进行进一步的认识。 (1)反转链表 206. 反转链…

cas 5.3服务器搭建

项目环境要求 jdk1.8,tomcat8 网盘下载(官网下载速度慢可以用此方法下载) 网盘链接:8910官网各稳定版本,软件包点击自取 cas5.3git代码 https://github.com/apereo/cas-overlay-template/tree/5.3 刚拉下来的代码目录…

OJ题-反转链表

给你一个单链表的头节点,请反转链表,并返回新的链表 eg: 1,2,3,4,5--->5,4,3,2,1 //反转链表 struct ListNode* reverseList(struct ListNode* head) {//定义三个变量struct ListNode* n1, * n2, * n3;n1 NULL;n2 head;n3 head->n…

鸿蒙开发之ArkTS 基础九 枚举类型

枚举把变量固定在特定的范围内 枚举的语法: enum 枚举名字 { 常量1 值1, 常量1 值1, 常量1 值1, ... } 定义具体如下: 使用具体如下:

centos更改静态ip

点击网络和internet设置 点击更改适配器 、点击属性

【C++题目】1.日期差值

日期差值 题目&#xff1a; 链接&#x1f517;&#xff1a;日期差值 代码&#xff1a; #include <iostream> using namespace std; /* *思路&#xff1a; * 1. 分别求出每一个日期与0000年0月1日距离的天数 * 2. 两个距离天数相减即可得到两个日期相差的天数 *///平年…

宿舍管理系统的设计与实现 (含源码+sql+视频导入教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 宿舍管理系统拥有三个角色&#xff0c;分别为系统管理员、宿舍管理员以及学生。其功能如下&#xff1a; 管理员&#xff1a;宿舍管理员管理、学生管理、宿舍楼管理、缺勤记录管理、个人密…

【高录用 | EI快检索, IEEE出版】第二届人工智能与自动化控制国际学术会议(AIAC 2024)

会议官网&#xff1a;www.icaiac.org The 2nd International Conference on Artificial Intelligence and Automation Controlwww.icaiac.org 电气电子工程师学会&#xff08;IEEE&#xff09;的英文全称是the Institute of Electrical and Electronics Engineers。作为全球最…