mysql字段截取的几种函数和搭配函数示例代码

 更新时间:2025年09月24日 08:34:06   作者:小垃圾运维  
在 MySQL 数据库中,有时我们需要截取字段或字符串的一部分进行查询、展示或处理,下面这篇文章主要介绍了mysql字段截取的几种函数和搭配函数的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、substr函数

-- 函数的语法
-- substring函数与substr函数一样
SUBSTR(str,position,length);
SUBSTR(str from position for length);
  • str:需要截取的字符串,支持嵌套
  • position:截取的起始位置(索引从1开始‌,负数表示从末尾倒序计数,需MySQL 8.0+支持)
  • length:是可选参数;截取字符串的长度(若为负数则返回空值)
-- 从position开始截取至末尾
SUBSTR(str,position)
SUBSTR(str FROM position)

-- 从position开始截取length长度
SUBSTR(str,position,length)
SUBSTR(str FROM position FOR length)

二、SUBSTRING_INDEX‌

‌功能‌:按分隔符截取字符串特定部分,支持正向/逆向计数

-- 语法
SUBSTRING_INDEX(str, delim, count)

参数解析:

  • str:原始字符串或字段
  • delim:分隔符(支持多字符)
  • count:
    正数:从左往右截取前count个分隔符左侧内容
    负数:从右往左截取前abs(count)个分隔符右侧内容
-- 经典案例
SELECT SUBSTRING_INDEX('www.jb51.net', '.', 2);   -- 结果:'www.jb51'
SELECT SUBSTRING_INDEX('100-200-300', '-', -1);  -- 结果:'300'
SELECT SUBSTRING_INDEX('a|b|c', '|', 3);   -- 结果:'a|b|c'(超出分隔符总数时返回完整字符串)

三、LEFT/RIGHT‌

‌功能‌:从字符串左/右侧截取固定长度子串。

-- 语法‌:
LEFT(str, length)
RIGHT(str, length)

‌参数‌:

  • str:原始字符串
  • length:截取长度(需≥0,否则返回空值;若=0,返回空字符串)

四、LOCATE‌、instr、position

‌功能‌:返回子字符串首次出现的位置,未查询到结果返回0

-- 语法
LOCATE(substr, str , start_pos)
-- instr函数中参数区分大小写,可以结合lower/upper共同
INSTR(str, substr)
-- 可读性高
POSITION(substr IN str)

‌参数‌:

  • substr:待查找的子字符串
  • str:原始字符串
  • start_pos:起始搜索位置(可以不填,默认值1)

五、获取json字符串里面的指定值

1、JSON_EXTRACT()

-- 语法:
JSON_EXTRACT(json_doc, path)

‌参数说明‌:

  • json_doc:JSON类型字段名或JSON字符串
  • path:JSON路径表达式(以$开头,支持.和[]访问对象/数组)
-- 提取JSON对象中的cusId字段
SELECT JSON_EXTRACT(zt.follow_up_source, '$.cusId') FROM table_name;
-- 提取数组第一个元素的name字段(索引从0开始)
SELECT JSON_EXTRACT('[{\"name\":\"John\"},{\"name\":\"Jane\"}]', '$[0].name');

2、JSON_UNQUOTE()

功能‌:移除JSON_EXTRACT返回值的引号,将JSON字符串转为普通文本

SELECT JSON_UNQUOTE(JSON_EXTRACT(info, '$.name')) FROM users WHERE id=1;
-- 等效简写:->>运算符(MySQL 5.7+支持)
SELECT info->>'$.name' FROM users;

MySQL 5.7+‌、mariadb10.2.0+:支持基础JSON函数

总结 

到此这篇关于mysql字段截取的几种函数和搭配函数的文章就介绍到这了,更多相关mysql字段截取函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux服务上MySQL启动、重启和关闭的操作方法

    Linux服务上MySQL启动、重启和关闭的操作方法

    MySQL是一种广泛使用的开源关系型数据库管理系统,常用于各种规模的应用程序中,在Linux服务器上管理MySQL服务是一个基本的运维任务,本文将详细介绍如何在Linux系统上启动、重启和关闭MySQL服务,涵盖不同Linux发行版(如Ubuntu和CentOS)的操作方法
    2024-11-11
  • mysql记录根据日期字段倒序输出

    mysql记录根据日期字段倒序输出

    这篇文章主要介绍了mysql记录根据日期字段倒序输出 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Mysql分区表的管理与维护

    Mysql分区表的管理与维护

    改变一个表的分区方案只需使用alter table 加 partition_options 子句就可以了。这篇文章主要介绍了Mysql分区表的管理与维护,非常不错,感兴趣的朋友一起学习吧,需要的朋友可以参考下
    2016-08-08
  • 在VB.NET应用中使用MySQL的方法

    在VB.NET应用中使用MySQL的方法

    这篇文章主要介绍了在VB.NET应用中使用MySQL的方法,操作基于Visual Studio IDE进行,需要的朋友可以参考下
    2015-06-06
  • MySQL主从同步中的server-id示例详解

    MySQL主从同步中的server-id示例详解

    这篇文章主要给大家介绍了关于MySQL主从同步中server-id的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • MySql日期查询数据的实现

    MySql日期查询数据的实现

    本文主要介绍了MySql日期查询数据的实现,详细的介绍了几种日期函数的具体使用,及其具体某天的查询,具有一定的参考价值,感兴趣的可以了解一下
    2023-01-01
  • Mysql修改datadir导致无法启动问题解决方法

    Mysql修改datadir导致无法启动问题解决方法

    这篇文章主要介绍了Mysql修改datadir导致无法启动问题解决方法,本文原因是SELINUX导致,用关闭SELINUX的方法解决了这个问题,需要的朋友可以参考下
    2015-02-02
  • win10下mysql5.7.21安装详细过程

    win10下mysql5.7.21安装详细过程

    这篇文章主要为大家详细介绍了win10下mysql5.7.21安装的详细过程,以及安装Mysql 5.7.21遇到的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • SQL中MIN和MAX及常见函数教程示例

    SQL中MIN和MAX及常见函数教程示例

    这篇文章主要为大家介绍了SQL中MIN和MAX及常见函数教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 浅谈MySQL分页Limit的性能问题

    浅谈MySQL分页Limit的性能问题

    这篇文章主要介绍了浅谈MySQL分页Limit的性能问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论