游乐游手机版
首页/数据库/文章详情

MySQL中SUBSTRING和MID函数用法详解与子串提取技巧

时间:2026-08-21 09:49
在进行 MySQL 数据库操作时,我们经常需要从已存储的字符串中提取指定内容,例如从用户全名中截取姓氏,或者从日期字符串中获取年份等。MySQL 提供了 SUBSTRING() 和 MID() 两个常用字符串函数,它们的功能几乎一致,都是用于从字符串中精准截取子串。下面将详细介绍这两个 MySQL

在进行 MySQL 数据库操作时,我们经常需要从已存储的字符串中提取指定内容,例如从用户全名中截取姓氏,或者从日期字符串中获取年份等。MySQL 提供了 SUBSTRING()MID() 两个常用字符串函数,它们的功能几乎一致,都是用于从字符串中精准截取子串。下面将详细介绍这两个 MySQL 字符串截取函数的语法、参数说明以及常见实际应用场景。

MySQL中的SUBSTRING()和MID()函数的用法:精准抽取字符串中的子串

一、SUBSTRING()和MID()函数的基本语法

1.SUBSTRING()函数

SUBSTRING() 函数的基本语法如下:

SUBSTRING(str, pos, len)
  • str:要进行截取操作的原始字符串。
  • pos:子串开始截取的位置(注意:MySQL 中的位置索引从 1 开始,而不是从 0 开始)。
  • len:(可选)要截取的子串长度。如果省略该参数,SUBSTRING() 函数会返回从 pos 位置开始直到字符串末尾的全部内容。

2.MID()函数

MID() 函数的基本语法与 SUBSTRING() 完全相同:

MID(str, pos, len)
  • 各参数含义与 SUBSTRING() 中保持一致。

注意事项

  • 如果 pos 参数小于 1,那么 SUBSTRING()MID() 都会返回空字符串。
  • 如果 pos 参数大于原字符串长度,函数同样会返回空字符串。
  • 如果 len 参数小于 0,函数也会返回空字符串。

二、实际应用场景

1. 从用户全名中提取姓氏

假设有一张用户表 users,其中包含字段 fullname,用于存储用户姓名(如"张三丰")。如果你希望从完整姓名中提取姓氏(假设姓氏始终为第一个字),可以使用 SUBSTRING()MID() 函数:

SELECT SUBSTRING(fullname, 1, 1) AS surname FROM users;-- 或者SELECT MID(fullname, 1, 1) AS surname FROM users;

执行后将返回每位用户姓名中的姓氏部分,在这个示例里就是第一个字符。

2. 从日期字符串中提取年份

假设存在一个订单表 orders,其中字段 order_date 用于保存订单日期,格式为 "YYYY-MM-DD"。如果需要从日期字符串中提取年份,可以这样写:

SELECT SUBSTRING(order_date, 1, 4) AS order_year FROM orders;-- 或者SELECT MID(order_date, 1, 4) AS order_year FROM orders;

这样即可返回每条订单记录对应的年份信息。

3. 截取字符串的特定部分

假设你有一个文章内容字段 content,并希望从每篇文章中截取前 100 个字符作为摘要或预览。此时可以使用 SUBSTRING()MID() 函数,并根据需要结合 LENGTH()CHAR_LENGTH() 函数(当你需要按字符数而非字节数处理时尤其有用)来实现:

SELECT SUBSTRING(content, 1, 100) AS preview FROM articles;-- 或者SELECT MID(content, 1, 100) AS preview FROM articles;

需要注意的是,如果文章内容本身不足 100 个字符,那么这两个函数会直接返回完整内容,而不会报错。

三、总结

  • SUBSTRING()MID() 在 MySQL 中都可用于提取字符串中的子串,二者用法几乎完全一致。至于使用哪一个,通常取决于个人习惯或团队开发规范。在其他数据库系统中,例如 Oracle,更常见的是 SUBSTR(),但在 MySQL 里,SUBSTRING()MID() 可以视为等效写法。
  • 在使用这两个 MySQL 字符串函数时,一定要注意字符串位置是从 1 开始计算的,这一点会直接影响截取结果。同时,如果省略 len 参数,函数默认会从 pos 指定位置一直截取到字符串结尾。

总体来看,在 MySQL 数据库开发和 SQL 查询处理中,SUBSTRING()MID() 是非常实用的字符串处理函数,尤其适合完成字符串截取、字段内容提取、文本预览生成等任务。它们的语法清晰、使用便捷,只需要指定起始位置和长度,就能快速获取目标子串。无论是处理用户姓名、订单日期,还是文章内容摘要,熟练掌握这两个函数的用法,都能显著提升你在 MySQL 字符串处理与数据库操作中的效率。

来源:https://www.jb51.net/database/369561old.htm
上一篇phpMyAdmin在Nginx环境下导入大文件失败原因与解决方法 下一篇如何查看Oracle用户当前使用的Profile配置
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Redis是什么:核心特性、架构与应用场景解析
数据库 · 2026-09-01

Redis是什么:核心特性、架构与应用场景解析

Redis是一款基于内存的键值型NoSQL数据库,以超高读写速度和丰富的数据结构著称。本文系统梳理Redis的核心特性、架构组成、性能优势及典型应用场景,并通过与Memcached、MySQL、MongoDB的对比,帮助开发者快速判断Redis是否适合当前业务需求。

Windows 安装 MongoDB 完整图文教程
数据库 · 2026-09-01

Windows 安装 MongoDB 完整图文教程

本文详细介绍在 Windows 系统上安装 MongoDB 的完整流程。从官网下载 MSI 安装包开始,逐步演示自定义安装路径、配置 Windows 服务、跳过 MongoDB Compass 等关键选项,并提供通过系统服务列表验证安装是否成功的方法,帮助开发者快速搭建本地 MongoDB 环境。

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动
数据库 · 2026-09-01

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动

本文详解在 Linux 系统下安装 MongoDB 的完整流程,涵盖依赖包安装、二进制包下载解压、环境变量配置、数据与日志目录创建及服务启动验证。通过标准化命令与路径说明,帮助开发者快速完成部署并确认服务状态。

MacOS安装MongoDB完整教程
数据库 · 2026-09-01

MacOS安装MongoDB完整教程

本文介绍在MacOS系统下安装MongoDB的完整流程,涵盖下载、解压、目录配置、环境变量设置及服务启动。通过明确的命令与参数说明,帮助开发者快速完成环境搭建并验证安装结果。

Ubuntu系统安装与配置Redis完整指南
数据库 · 2026-09-01

Ubuntu系统安装与配置Redis完整指南

本文详解在Ubuntu系统中安装Redis的两种主流方式:apt在线安装与源码编译安装。涵盖版本选择逻辑、服务启停与状态检查、连接验证方法,以及在线练习工具与桌面GUI客户端的对比与使用建议,帮助开发者快速搭建并验证Redis运行环境。