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

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&#xf…...

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&#xff08;可扩展标记语言&#xff09;是一种非常常用的数据存储和交换格式。 二、XML 的基本结构 声明 XML 文件通常以 XML 声明开始&#xff0c;例如&#xff1a;<?xml version"1.0" encoding"UTF-8"?>。它指定了 XML 的版…...

C140 杨辉三角

C140 杨辉三角 题目题解(94)讨论(102)排行面经 new 简单 通过率&#xff1a;29.57% 时间限制&#xff1a;1秒 空间限制&#xff1a;256M 知识点C工程师牛客 校招时部分企业笔试将禁止编程题跳出页面&#xff0c;为提前适应&#xff0c;练习时请使用在线自测&#xff0c;…...

C++字符串操作中的陷阱

休对故人思故国&#xff0c;且将新火试新茶。诗酒趁年华。 ——《望江南超然台作》【宋】苏轼 目录 正文&#xff1a; 首先我们要明白出现问题的原因: 1. 缓冲区溢出 2. 错误的字符串声明方式 3. 缺乏对NULL指针的检查 解决方案&#xff1a; 下期预告&#xff1a;C字符串…...

最值求解 | 管理类联考数学专项

日期内容2024.9.5新建2024.9.6曦曦求最值完结 实数求最值至少至多抽屉原理工程问题线性规划一次性绝对值求最值 参考&#xff1a; b站跟着曦曦老师玩转【最值】...

C++_继承详解

继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能。继承呈现了面向对象程序设计的层次结构&#xff0c;之前我们接触的复用都是函数复用&#xff0c;今天我们所讨…...

区块链开发解决方案有哪些

区块链开发解决方案概述 区块链开发解决方案旨在利用区块链技术构建和开发新型应用和系统&#xff0c;以解决各种业务问题和提升效率。区块链作为一种基于密码学的分布式账本技术&#xff0c;通过将交易和数据记录在不可篡改的区块中&#xff0c;并通过网络中的多个节点共同验…...

Express与SQLite集成教程:轻松实现数据库操作

Express使用SQLite的教程可以大致分为以下几个步骤。以下是一个详细的指南&#xff0c;帮助你在Express项目中集成SQLite数据库。 1. 安装必要的库 首先&#xff0c;你需要在你的Express项目中安装sqlite3库。打开终端或命令提示符&#xff0c;切换到你的项目目录&#xff0c…...

Transforms的常见用法

文章目录 一、封装函数与普通函数的用法区别二、Image.open()打开图片的格式三、ToTensor打开图片格式四、ToTensor使用五、Normalize归一化使用六、Resize的使用七、Compose - Resize 使用八、RandomCrop&#xff08;&#xff09; 随机裁剪用法 一、封装函数与普通函数的用法区…...

js 创建 React 项目

起因(目的): js 很久没写了。 react js 之前粗略看过, 最近又需要用到, 继续学习&#xff0c; 记录 积累。 1. 新建 React 项目 的几种方法。 官方建议使用 next 来创建 React 项目&#xff0c; 但是我觉得太复杂了。以后再看看. npx create-next-applatest # !!! 不建议使…...

WPF 中常用 `Transform` 类的介绍、使用示例和适用场景

WPF 中常用 Transform 类的介绍、使用示例和适用场景 使用场景解释代码示例示例代码解释 Transform 类描述使用示例适用场景TranslateTransform用于沿 X 轴或 Y 轴平移&#xff08;移动&#xff09;元素。xml <TranslateTransform X"50" Y"100" />移…...

当你的 Agent 会“多轮思考”,Trace 却还停留在单轮:阿里云 CMS OpenClaw 可观测插件升级

作者&#xff1a;王方&#xff08;方羞&#xff09; openclaw-cms-plugin 是阿里云云监控 CMS 自研的 OpenClaw 可观测插件&#xff0c;它实现了对 OpenClaw 每次任务调用的链路追踪&#xff0c;符合 GenAI 语义规范&#xff0c;方便用户快速定位和排查问题。具体可参考&#…...

GitHub汉化插件终极指南:3分钟告别英文困扰,畅游中文GitHub世界

GitHub汉化插件终极指南&#xff1a;3分钟告别英文困扰&#xff0c;畅游中文GitHub世界 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese …...

宝塔面板网站出现MySQL连接超时丢失怎么解决_合理增大max_allowed_packet和超时等待参数

MySQL连接超时丢失主因是max_allowed_packet过小或wait_timeout/interactive_timeout设置不当&#xff0c;需同步调大并重启MySQL验证生效。MySQL 连接超时丢失的典型表现页面报错 Lost connection to MySQL server during query 或 MySQL server has gone away&#xff0c;尤其…...

OpenClaw异常处理机制:千问3.5-27B任务失败自动回滚

OpenClaw异常处理机制&#xff1a;千问3.5-27B任务失败自动回滚 1. 为什么需要异常处理机制 上周我让OpenClaw执行一个复杂的文件处理任务&#xff1a;扫描2000多份PDF合同&#xff0c;提取关键条款并生成汇总表格。本以为可以喝着咖啡等结果&#xff0c;没想到半夜收到飞书报…...

React Native Collapsible高级技巧:10个优化动画性能的方法

React Native Collapsible高级技巧&#xff1a;10个优化动画性能的方法 【免费下载链接】react-native-collapsible Animated collapsible component for React Native, good for accordions, toggles etc 项目地址: https://gitcode.com/gh_mirrors/re/react-native-collaps…...

SparkFun Qwiic OLED Arduino图形库深度解析

1. 项目概述 SparkFun Qwiic OLED Arduino Library 是一个面向嵌入式显示应用的轻量级、高效率图形驱动库&#xff0c;专为 SparkFun 全系列基于 SSD1306 控制器的 Qwiic 接口 OLED 模块设计。该库并非简单封装&#xff0c;而是从底层硬件抽象层出发&#xff0c;重构了图形渲染…...

用 Shield CLI 本地开发调试:从零到上线你的第一个 Skill

当 AI Agent 需要调用外部能力时&#xff0c;Skill 就是它的"技能包"。本文以一个文旅素材搜索 Skill 为例&#xff0c;带你走完本地开发 → 调试 → 发布 → 安装使用的完整流程。核心工具只有一个 —— Shield CLI。 背景&#xff1a;什么是 Skill&#xff1f; Sk…...

可口可乐在美国250周年庆活动中唱响“我想给美国买瓶可乐”

可口可乐公司正式启动一项为期一年的全国性营销活动&#xff0c;以配合其与“美国250周年委员会&#xff08;America250&#xff09;”的合作伙伴关系。该委员会是负责筹备美国建国250周年庆典的非营利组织。 活动核心是一支三分钟的赞歌式视频《畅饮美国&#xff08;Drink In…...

JMS, ActiveMQ 学习一则偌

开发个什么Skill呢&#xff1f; 通过 Skill&#xff0c;我们可以将某些能力进行模块化封装&#xff0c;从而实现特定的工作流编排、专家领域知识沉淀以及各类工具的集成。 这里我打算来一次“套娃式”的实践&#xff1a;创建一个用于自动生成 Skill 的 Skill&#xff0c;一是用…...

字符编码原理与UTF-8实战指南

1. 字符集编码的前世今生第一次接触字符集编码这个概念&#xff0c;是在2008年处理一个中文乱码问题的时候。当时一个简单的网页表单提交&#xff0c;在数据库里存储的内容变成了"ˆ‘š„"这样的乱码。从那时起&#xff0c;我意识到字符编码这个看似基础的概念&…...