栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

MySQL5.7以上版本提取数据库中的某个JSON字段中的某个键值对的值是数组的内容提取.获取数组中指定位置的元素内容

MySQL5.7以上版本提取数据库中的某个JSON字段中的某个键值对的值是数组的内容提取.获取数组中指定位置的元素内容

MySQL获取数组中指定位置的元素内容
  • 前言
  • 一、本文中使用的MySQL函数
    • JSON函数(只有MySql5.7及其以上版本可以使用JSON函数)
      • JSON_EXTRACT(json,path)
      • JSON_UNQUOTE(value)
    • 字符串函数
      • SUBSTRING_INDEX(s,d,n)
      • REVERSe(s)
  • 二、使用示例
    • 方式一:
    • 方式二:


前言

最近在查数据库中的JSON字段时,有这么个需求.需要在数据库端查询数据库中JSON数据类型的字段,这个JSON中的某个value是数组类型的值,最终需要获取到这个数组中的某个位置的元素

在看本文章前需要先了解如何使用MySQL的JSON函数来处理JSON字段.

一、本文中使用的MySQL函数 JSON函数(只有MySql5.7及其以上版本可以使用JSON函数)

参考来源:https://www.cnblogs.com/waterystone/p/5626098.html

JSON_EXTRACT(json,path)

作用:从json文档里抽取数据。如果有参数有NULL或path不存在,则返回NULL。如果抽取出多个path,则返回的数据封闭在一个json array里。

JSON_UNQUOTE(value)

去掉value的双引号。如果val为NULL,则返回NULL

字符串函数 SUBSTRING_INDEX(s,d,n)

返回从字符串 s 的第 n个出现的分隔符 d之后的子串。
如果 n是正数,返回第 n个字符左边的字符串。
如果 n是负数,返回第(n的绝对值(从右边数))个字符右边的字符串。

REVERSe(s)

将字符串s的顺序反过来

二、使用示例 方式一:

用mySQL中的JSON函数,先获取JSON中的数组,利用JSON_EXTRACT函数将数组中指定位置的元素获取出来,此时会带有双引号,使用JSON_UNQUOTE函数去双引号

select
JSON_UNQUOTE(JSON_EXTRACT(JSON_EXTRACT('{"list":["1","2","3"]}','$.list'),'$[2]'))
方式二:

采用字符串截取的方式获取数组内容

select 
REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(arra,'"',2)),'"',1)) as arr
from (
SELECt
REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(array,',',1)),',',1)) as arra
FROM ( select JSON_EXTRACT('{"list":["1","2","3"]}','$.list') as array ) as a)
b
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/336286.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号