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字段截取函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL使用binlog日志回滚操作失误的数据的操作教程

    MySQL使用binlog日志回滚操作失误的数据的操作教程

    在日常开发运维中,我们可能会出现一些操作失误的情况,比如使用了错误的 sql 语句对 mysql 数据进行了 update、delete 等操作,失误操作导致数据出现问题,那么如果出现这种情况,应该如何恢复失误/mysql 误删数据时,本文将使用几种常用方法带你回滚误删的数据
    2025-08-08
  • MySQL中一些优化straight_join技巧

    MySQL中一些优化straight_join技巧

    这篇文章主要介绍了MySQL中一些优化straight_join技巧,作者通过用户的实际案例分析,需要的朋友可以参考下
    2015-05-05
  • Windows下MySql 9.5.0(2025)安装步骤

    Windows下MySql 9.5.0(2025)安装步骤

    文章介绍了MySQL的官方网站下载地址和安装步骤,包括选择版本、下载安装包、启动安装、设置安装目录、数据库类型、网络和端口设置、root用户密码、创建用户、文件授权、示例数据库和防火墙设置,最后通过CMD验证是否能正常登录数据库,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • MYSQL数据库如何设置主从同步

    MYSQL数据库如何设置主从同步

    大家好,本篇文章主要讲的是MYSQL数据库如何设置主从同步,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • MySQL数据库无法远程连接的问题详细解决过程

    MySQL数据库无法远程连接的问题详细解决过程

    这篇文章主要介绍了MySQL数据库无法远程连接问题的详细解决过程,解决MySQL无法远程连接的问题需要检查并修改MySQL的用户权限,确保配置文件允许远程访问,并且防火墙开放3306端口,需要的朋友可以参考下
    2025-05-05
  • MySQL数据库运维之数据恢复的方法

    MySQL数据库运维之数据恢复的方法

    本篇文章主要介绍了MySQL数据库运维之数据恢复的方法,此处总结一下恢复方案,并结合数据库的二进制日志做下数据恢复的示范。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • MYSQL表中某字段所有值大小写转换

    MYSQL表中某字段所有值大小写转换

    这篇文章主要为大家介绍了MYSQL表中某字段所有值大小写转换示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • MySQL 查询结果以百分比显示简单实现

    MySQL 查询结果以百分比显示简单实现

    用到了MySQL字符串处理中的两个函数concat()和left()实现查询结果以百分比显示,具体示例代码如下,感兴趣的朋友可以学习下
    2013-07-07
  • 傻瓜式用Eclipse连接MySQL数据库

    傻瓜式用Eclipse连接MySQL数据库

    本来不想写这么简单人文章,在百度上搜索我这个标题,完全符合标题的一大堆。但我按照那些文章捣鼓了很久,就是不行。
    2015-09-09
  • 超详细mysql left join,right join,inner join用法分析

    超详细mysql left join,right join,inner join用法分析

    比较详细的mysql的几种连接功能分析,只要你看完就能学会的好东西
    2008-08-08

最新评论