MySQL 截取字符串的 6 种方法(图文教程)

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/

截止目前, 星球 内专栏累计输出 66w+ 字,讲解图 2896+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2300+ 小伙伴加入学习 ,欢迎点击围观

在 MySQL 中,处理字符串时,经常需要截取字符串的部分内容。MySQL 提供了多种字符串截取函数,可以根据需求灵活选择不同的截取方式。这些函数在数据清洗、文本处理和数据提取等操作中非常常用。

1. 使用 SUBSTRING 截取字符串

SUBSTRING 是 MySQL 中用于截取字符串的主要函数,可以根据指定的起始位置和长度提取部分字符串。其基本语法如下:

SUBSTRING(string, position, length);
  • string:要截取的字符串。
  • position:起始位置,从 1 开始。如果为负数,则从字符串末尾倒数计算位置。
  • length:截取的字符长度(可选)。如果未指定,则截取到字符串末尾。

示例

SELECT SUBSTRING('犬小哈教程!', 1, 3);  -- 输出:犬小哈
SELECT SUBSTRING('犬小哈教程!', -6, 5); -- 输出:犬小哈教程(从末尾向前计算)

MySQL 使用 SUBSTRING 截取字符串MySQL 使用 SUBSTRING 截取字符串

2. 使用 LEFT 截取字符串左边部分

LEFT 函数用于从字符串左边开始截取指定长度的字符。基本语法如下:

LEFT(string, length);
  • string:要截取的字符串。
  • length:从左边开始截取的字符数。

示例

SELECT LEFT('犬小哈教程!', 5);  -- 输出:犬小哈

MySQL 使用 LEFT 截取字符串左边部分MySQL 使用 LEFT 截取字符串左边部分

3. 使用 RIGHT 截取字符串右边部分

RIGHT 函数用于从字符串右边开始截取指定长度的字符。其语法如下:

RIGHT(string, length);
  • string:要截取的字符串。
  • length:从右边开始截取的字符数。

示例

SELECT RIGHT('犬小哈教程!', 3);  -- 输出:教程!

MySQL 使用 RIGHT 截取字符串右边部分MySQL 使用 RIGHT 截取字符串右边部分

4. 使用 SUBSTRING_INDEX 截取指定字符之前或之后的字符串

SUBSTRING_INDEX 可以根据指定的分隔符和出现的次数来截取字符串的一部分。该函数非常适合处理需要根据特定字符分隔的字符串。

语法如下:

SUBSTRING_INDEX(string, delimiter, count);
  • string:要截取的字符串。
  • delimiter:分隔符。
  • count:指定分隔符的出现次数。为正值时返回指定分隔符左边的字符串,为负值时返回右边的字符串。

示例

SELECT SUBSTRING_INDEX('犬小哈,教程,小哈学Java', ',', 2);  -- 输出:犬小哈,教程
SELECT SUBSTRING_INDEX('犬小哈,教程,小哈学Java', ',', -1); -- 输出:小哈学Java

使用 SUBSTRING_INDEX 截取指定字符之前或之后的字符串使用 SUBSTRING_INDEX 截取指定字符之前或之后的字符串

5. 使用 MID 函数(SUBSTRING 的别名)

MID 函数是 SUBSTRING 的别名,其用法与 SUBSTRING 相同。这在 MySQL 中是为了兼容其他数据库语法提供的支持。

MID(string, position, length);

示例

SELECT MID('犬小哈教程!', 1, 3);  -- 输出:犬小哈

6. 使用 LPADRPAD 填充字符串并截取

LPADRPAD 用于在字符串的左侧或右侧填充字符,并且可以限制字符串的长度。虽然它们的主要功能是填充字符,但也可用于截取字符串。

示例

SELECT LPAD('犬小哈', 10, '*');  -- 输出:*****犬小哈
SELECT RPAD('犬小哈', 10, '-');  -- 输出:犬小哈-----

小结

MySQL 提供了多种字符串截取函数,SUBSTRING 是最基础的截取函数,而 LEFTRIGHT 则分别用于从左或从右截取固定长度的字符串。如果需要根据分隔符截取,可以使用 SUBSTRING_INDEX。灵活使用这些函数,可以满足大多数字符串处理需求,在数据提取和数据清洗时非常有用。