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" />移…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
