Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql字段截取函数

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

作者:小垃圾运维

在 MySQL 数据库中,有时我们需要截取字段或字符串的一部分进行查询、展示或处理,下面这篇文章主要介绍了mysql字段截取的几种函数和搭配函数的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、substr函数

-- 函数的语法
-- substring函数与substr函数一样
SUBSTR(str,position,length);
SUBSTR(str from position for 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)

参数解析:

-- 经典案例
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)

‌参数‌:

四、LOCATE‌、instr、position

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

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

‌参数‌:

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

1、JSON_EXTRACT()

-- 语法:
JSON_EXTRACT(json_doc, path)

‌参数说明‌:

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

您可能感兴趣的文章:
阅读全文