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" />移…...
蓝桥杯双阶乘解答
题目:代码:import java.math.BigInteger;import java.util.Scanner;// 1:无需package// 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);//在此输入您的代码...BigInteger…...
Python 批量导出数据库数据至 Excel 文件形
简介 langchain专门用于构建LLM大语言模型,其中提供了大量的prompt模板,和组件,通过chain(链)的方式将流程连接起来,操作简单,开发便捷。 环境配置 安装langchain框架 pip install langchain langchain-community 其中…...
用LiuJuan Z-Image做创意设计:生成概念艺术人像与角色设定图
用LiuJuan Z-Image做创意设计:生成概念艺术人像与角色设定图 你是否曾经为角色设计而苦恼?无论是游戏角色、小说人物还是品牌IP形象,传统设计流程往往需要反复修改草图、调整细节,耗费大量时间。现在,借助LiuJuan Z-I…...
C++ 入门学习经验 02—— 新手最容易遇到的几个问题以及如何解决
大家好啊!这里是阳阳的博客,一个正在努力学习技术的大学生。上一篇和大家聊了刚接触 C 时的环境搭建、学习路径和心态问题,收到了很多同学的共鸣。所以今天这第二篇,我想继续沿着新手学习时的路线,来和大家聊聊刚学 C …...
nli-distilroberta-base在STM32项目中的应用构想:嵌入式设备文本交互的本地推理
nli-distilroberta-base在STM32项目中的应用构想:嵌入式设备文本交互的本地推理 1. 嵌入式AI的新战场 想象一下,你的智能家居设备不再需要依赖云端服务器,就能理解"把卧室灯光调暗一点"这样的自然语言指令。这正是nli-distilrobe…...
3个革新方案:解决Steam创意工坊模组下载难题
3个革新方案:解决Steam创意工坊模组下载难题 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 开篇:当你第5次输错游戏ID时 你是否遇到过这样的场景&…...
手动指定服务的调用地址
配置项解释 这是Spring Cloud Ribbon的配置代码,作用是手动指定服务的调用地址,属于微服务开发里的客户端负载均衡配置。 我给你逐行拆解: test: # 【服务名称】你要调用的微服务名字叫 testribbon: # 【组件】使用 Ribbon 负…...
绍兴Geo优化,如何选对靠谱服务商?
在人工智能技术深度渗透商业推广领域的当下,GEO(地理定位)优化已不再是简单的本地搜索排名,而是演变为一场关于“空间精准度”与“AI语义理解”的双重竞赛。对于绍兴及周边区域的企业而言,如何从众多服务商中筛选出真正…...
让开发流程更高效:为 Visual Studio 订阅用户解锁 Syncfusion凸
一、什么是requests? requests 是一个用于发送HTTP请求的 Python 库。 它可以帮助你: 轻松发送GET、POST、PUT、DELETE等请求 处理Cookie、会话等复杂性 自动解压缩内容 处理国际化域名和URL 二、应用场景 requests 广泛应用于以下实际场景: …...
2 UI 设计师工具
2 UI 设计师工具 2.1 按键 QPushButton 1.按键插入:将左侧buttons中的pushbutton拖拽到右侧即插入一个按键。2.按键命名:可在objectName处直接更改按键名字。3.按键重命名:单调的命名可能会存在如下图问题,用户没有办法直接从按键…...
