MySQL 字符串操作详解和案例示范
MySQL 字符串操作详解
MySQL 提供了丰富的字符串操作函数,能够对这些字符串进行截取、定位、替换等操作。本文将详细讲解 MySQL 中的字符串操作函数,包括 SUBSTRING()、SUBSTR()、LEFT()、RIGHT()、LOCATE()、POSITION()、FIND_IN_SET()、ELT()、INSERT() 和 REPLACE(),并分析它们的区别和用法。
一、SUBSTRING() 和 SUBSTR()
1. SUBSTRING() 函数
SUBSTRING() 函数用于从字符串中截取指定的子字符串。
语法:
SUBSTRING(str, pos, len);
str:要截取的字符串。pos:截取的起始位置,正数表示从左往右,负数表示从右往左。len(可选):截取的长度。
示例:
从订单编号 'ORD123456789' 中截取前 3 个字符:
SELECT SUBSTRING('ORD123456789', 1, 3) AS result;
输出:
+--------+
| result |
+--------+
| ORD |
+--------+
从字符串 '123456789' 中截取最后 4 个字符:
SELECT SUBSTRING('123456789', -4) AS result;
输出:
+--------+
| result |
+--------+
| 6789 |
+--------+
2. SUBSTR() 函数
SUBSTR() 是 SUBSTRING() 的别名,两者的用法和功能完全相同。我们可以互换使用。
示例:
SELECT SUBSTR('ORD123456789', 1, 3) AS result;
二、LEFT() 和 RIGHT()
LEFT() 和 RIGHT() 用于从字符串的左侧或右侧截取指定长度的子字符串。
1. LEFT() 函数
LEFT() 用于从字符串的左边截取指定长度的子字符串。
语法:
LEFT(str, len);
str:要截取的字符串。len:截取的长度。
示例:
从订单编号 'ORD123456789' 中截取前 3 个字符:
SELECT LEFT('ORD123456789', 3) AS result;
输出:
+--------+
| result |
+--------+
| ORD |
+--------+
2. RIGHT() 函数
RIGHT() 用于从字符串的右边截取指定长度的子字符串。
语法:
RIGHT(str, len);
str:要截取的字符串。len:截取的长度。
示例:
从订单编号 'ORD123456789' 中截取后 3 个字符:
SELECT RIGHT('ORD123456789', 3) AS result;
输出:
+--------+
| result |
+--------+
| 789 |
+--------+
三、LOCATE() 和 POSITION()
LOCATE() 和 POSITION() 用于查找子字符串在字符串中的位置。
1. LOCATE() 函数
LOCATE() 用于返回子字符串在字符串中的第一次出现的位置。
语法:
LOCATE(substr, str, pos);
substr:要查找的子字符串。str:要查找的字符串。pos(可选):从字符串的第pos个字符开始查找。
示例:
查找 '123456789' 中子字符串 '456' 的位置:
SELECT LOCATE('456', '123456789') AS result;
输出:
+--------+
| result |
+--------+
| 4 |
+--------+
2. POSITION() 函数
POSITION() 是 LOCATE() 的别名,通常与 IN 关键字一起使用。
语法:
POSITION(substr IN str);
示例:
SELECT POSITION('456' IN '123456789') AS result;
输出与 LOCATE() 相同。
四、FIND_IN_SET()
FIND_IN_SET() 函数用于查找一个字符串在以逗号分隔的字符串列表中的位置。
语法:
FIND_IN_SET(str, strlist);
str:要查找的字符串。strlist:以逗号分隔的字符串列表。
示例:
查找 'orange' 在字符串列表 'apple,banana,orange' 中的位置:
SELECT FIND_IN_SET('orange', 'apple,banana,orange') AS result;
输出:
+--------+
| result |
+--------+
| 3 |
+--------+
五、ELT()
ELT() 函数返回逗号分隔的字符串列表中第 N 个字符串。
语法:
ELT(N, str1, str2, ...);
N:指定要返回的字符串的位置。
示例:
获取第 2 个字符串 'banana':
SELECT ELT(2, 'apple', 'banana', 'orange') AS result;
输出:
+--------+
| result |
+--------+
| banana |
+--------+
六、INSERT()
INSERT() 函数用于将一个字符串插入到另一个字符串中的指定位置。
语法:
INSERT(str, pos, len, newstr);
str:原始字符串。pos:插入开始的位置。len:要替换的字符数。newstr:要插入的字符串。
示例:
将 'ABC' 插入到字符串 '123456789' 的第 4 个字符位置,替换 3 个字符:
SELECT INSERT('123456789', 4, 3, 'ABC') AS result;
输出:
+-----------+
| result |
+-----------+
| 123ABC789 |
+-----------+
七、REPLACE()
REPLACE() 函数用于将字符串中的所有指定子字符串替换为另一个子字符串。
语法:
REPLACE(str, from_str, to_str);
str:要进行替换的字符串。from_str:要被替换的子字符串。to_str:新的子字符串。
示例:
将 '123456789' 中的所有 '456' 替换为 'ABC':
SELECT REPLACE('123456789', '456', 'ABC') AS result;
输出:
+-----------+
| result |
+-----------+
| 123ABC789 |
+-----------+
相关文章:
MySQL 字符串操作详解和案例示范
MySQL 字符串操作详解 MySQL 提供了丰富的字符串操作函数,能够对这些字符串进行截取、定位、替换等操作。本文将详细讲解 MySQL 中的字符串操作函数,包括 SUBSTRING()、SUBSTR()、LEFT()、RIGHT()、LOCATE()、POSITION()、FIND_IN_SET()、ELT()、INSERT…...
全双工语音交互
文章目录 微软小冰全双工字节大模型语音交互[Language Model Can Listen While Speaking](https://arxiv.org/html/2408.02622v1) 微软小冰全双工 全双工的定义:一路持续的听,upload audio;一路持续的输出,download audio…...
nginx中如何设置gzip
前言 Nginx通过配置gzip压缩可以提升网站整体速度 Nginx的gzip功能是用于压缩HTTP响应内容的功能。当启用gzip时,在发送给客户端之前,Nginx会将响应内容压缩以减小其大小。这样可以减少数据传输的带宽消耗和响应时间,提高网站的性能和速度。…...
借老系统重构机会我写了个groovy规则引擎
公司老系统的重构计划早就有了,为了对Java硬编码的各种校验规则进行重构,特地参考了相关技术,最终选择了groovy进行了系统的学习,并编写了一个即插即用的轻量级规则引擎。 文章目录 项目背景技术选型groovy的性能groovy脚本执行线…...
C#利用ffmpeg借助NVIDIA GPU实现实时RTSP硬解码+硬编码录制MP4
目录 说明 效果 项目 代码 下载 说明 利用周杰的开源项目 Sdcb.FFmpeg 项目地址:https://github.com/sdcb/Sdcb.FFmpeg/ 代码实现参考:https://github.com/sdcb/ffmpeg-muxing-video-demo 效果 C#利用ffmpeg借助NVIDIA GPU实现实时RTSP硬解码硬…...
第4章 汇编语言和汇编软件
第4章 汇编语言和汇编软件 该章主要介绍了汇编语言和汇编语言编译器的安装和使用。 汇编语言程序 该小节主要介绍了为什么要有汇编语言和汇编语言程序的一些基础写法。 书中有提到CPU有不同的架构,汇编语言有不同的风格,那么不同的CPU架构和不同的汇…...
网络安全在2024好入行吗?
前言 024年的今天,慎重进入网安行业吧,目前来说信息安全方向的就业对于学历的容忍度比软件开发要大得多,还有很多高中被挖过来的大佬。 理由很简单,目前来说,信息安全的圈子人少,985、211院校很多都才建立…...
C++练习
要求 1. 函数命名清晰 使用描述性的命名,准确反映函数的功能。例如,使用 CalculateSum() 而不是 sum()。避免使用缩写或模糊不清的名字,确保变量和函数名有明确的含义。 2. 参数传递 根据需要选择按值传递、按引用传递或按指针传递。如果…...
3. GIS后端工程师岗位职责、技术要求和常见面试题
本系列文章目录: 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…...
Linux学习笔记(4)----Debian压力测试方法
使用命令行终端压力测试需要两个实用工具:s-tui和stress sudo apt install s-tui stress 安装完成后,在终端中启动 s-tui实用工具: s-tui 执行后如下图: 你可以使用鼠标或键盘箭头键浏览菜单,然后点击“压力选项(Str…...
xml详解
一、XML是什么 XML(可扩展标记语言)是一种非常常用的数据存储和交换格式。 二、XML 的基本结构 声明 XML 文件通常以 XML 声明开始,例如:<?xml version"1.0" encoding"UTF-8"?>。它指定了 XML 的版…...
C140 杨辉三角
C140 杨辉三角 题目题解(94)讨论(102)排行面经 new 简单 通过率:29.57% 时间限制:1秒 空间限制:256M 知识点C工程师牛客 校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,…...
C++字符串操作中的陷阱
休对故人思故国,且将新火试新茶。诗酒趁年华。 ——《望江南超然台作》【宋】苏轼 目录 正文: 首先我们要明白出现问题的原因: 1. 缓冲区溢出 2. 错误的字符串声明方式 3. 缺乏对NULL指针的检查 解决方案: 下期预告:C字符串…...
最值求解 | 管理类联考数学专项
日期内容2024.9.5新建2024.9.6曦曦求最值完结 实数求最值至少至多抽屉原理工程问题线性规划一次性绝对值求最值 参考: b站跟着曦曦老师玩转【最值】...
C++_继承详解
继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。继承呈现了面向对象程序设计的层次结构,之前我们接触的复用都是函数复用,今天我们所讨…...
区块链开发解决方案有哪些
区块链开发解决方案概述 区块链开发解决方案旨在利用区块链技术构建和开发新型应用和系统,以解决各种业务问题和提升效率。区块链作为一种基于密码学的分布式账本技术,通过将交易和数据记录在不可篡改的区块中,并通过网络中的多个节点共同验…...
Express与SQLite集成教程:轻松实现数据库操作
Express使用SQLite的教程可以大致分为以下几个步骤。以下是一个详细的指南,帮助你在Express项目中集成SQLite数据库。 1. 安装必要的库 首先,你需要在你的Express项目中安装sqlite3库。打开终端或命令提示符,切换到你的项目目录,…...
Transforms的常见用法
文章目录 一、封装函数与普通函数的用法区别二、Image.open()打开图片的格式三、ToTensor打开图片格式四、ToTensor使用五、Normalize归一化使用六、Resize的使用七、Compose - Resize 使用八、RandomCrop() 随机裁剪用法 一、封装函数与普通函数的用法区…...
js 创建 React 项目
起因(目的): js 很久没写了。 react js 之前粗略看过, 最近又需要用到, 继续学习, 记录 积累。 1. 新建 React 项目 的几种方法。 官方建议使用 next 来创建 React 项目, 但是我觉得太复杂了。以后再看看. npx create-next-applatest # !!! 不建议使…...
WPF 中常用 `Transform` 类的介绍、使用示例和适用场景
WPF 中常用 Transform 类的介绍、使用示例和适用场景 使用场景解释代码示例示例代码解释 Transform 类描述使用示例适用场景TranslateTransform用于沿 X 轴或 Y 轴平移(移动)元素。xml <TranslateTransform X"50" Y"100" />移…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
Python爬虫实战:研究Restkit库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...
Tauri2学习笔记
教程地址:https://www.bilibili.com/video/BV1Ca411N7mF?spm_id_from333.788.player.switch&vd_source707ec8983cc32e6e065d5496a7f79ee6 官方指引:https://tauri.app/zh-cn/start/ 目前Tauri2的教程视频不多,我按照Tauri1的教程来学习&…...
网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...
Java多线程实现之Runnable接口深度解析
Java多线程实现之Runnable接口深度解析 一、Runnable接口概述1.1 接口定义1.2 与Thread类的关系1.3 使用Runnable接口的优势 二、Runnable接口的基本实现方式2.1 传统方式实现Runnable接口2.2 使用匿名内部类实现Runnable接口2.3 使用Lambda表达式实现Runnable接口 三、Runnabl…...
