Mysql如何获取json字符串/数组的值

 更新时间:2024年08月09日 08:44:09   作者:wuchongyong  
这篇文章主要介绍了Mysql如何获取json字符串/数组的值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Mysql获取json字符串/数组的值

单个json的,获取值使用json_extract

`select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel`");

数组的json的,获取数组的长度使用JSON_LENGTH

SELECT id,JSON_LENGTH('[{"id":"10000004555096","name":"1.docx"},{"id":"10000004555098","name":"2.doc"},{"id":"10000004555097","name":"3.html"}]'),F_zwm,F_dhhm FROM `w_b01rzcllc` limit 10;

数组的json的,获取数组的值使用json_extract

SELECT id,json_extract('[{"id":"10000004555096","name":"1.docx"},{"id":"10000004555098","name":"2.doc"},{"id":"10000004555097","name":"3.html"}]',"$[0].name"),F_zwm,F_dhhm FROM `w_b01rzcllc` limit 10;

Mysql获取 json字段中指定的值 ( MySQL 5.7 上下两种方式 )

JSON:

{
    "success": true,
    "code": 0,
    "msg": "操作成功",
    "data": {
        "access_token": "333d8c09-e522-4585-8cca-1d9c66e5cece",
        "token_type": "bearer",
        "refresh_token": "48a3e598-0e3e-4739-9e57-b301c1e3529d",
        "expires_in": 3599,
        "scope": "app"
    }
}

MySQL 5.7 以上可直接使用函数 JSON_EXTRACT 获取

select replace(json_extract(remark, '$.data.budgetNum'), '"', '')
from sys_user;

结果:

MySQL 5.7 以下可利用分割函数进行获取

select REPLACE(
                       remark,
                       CONCAT(
                               SUBSTRING_INDEX(remark, '"access_token":', 1),
                               '"access_token":"'
                           ),
                       ''
                   ) from sys_user;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 修改mysql默认字符集的两种方法详细解析

    修改mysql默认字符集的两种方法详细解析

    下面小编就为大家介绍两种修改mysql默认字符集的方法。需要的朋友可以过来参考下
    2013-08-08
  • mysql count(*)分组之后IFNULL无效问题

    mysql count(*)分组之后IFNULL无效问题

    文章总结:作者分享了在解决MySQL中根据发票ID和单位统计单位数量的问题时遇到的困难及解决方法,通过使用IFNULL()函数和CASEWHEN都无法解决问题,最终作者选择了嵌套循环的方法来实现需求,并总结了经验以供参考
    2024-11-11
  • mysql连接查询、联合查询、子查询原理与用法实例详解

    mysql连接查询、联合查询、子查询原理与用法实例详解

    这篇文章主要介绍了mysql连接查询、联合查询、子查询原理与用法,结合实例形式详细分析了mysql连接查询、联合查询、子查询的基本概念、功能、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • Mysql主从延时图解方法

    Mysql主从延时图解方法

    我们知道,一个服务器开放N个链接给客户端连接的,就会有大并发的更新操作,但是从服务器的里面读取binlog线程得仅有一个,当某个SQL在从服务器上执行的时间稍长 或由某个SQL要锁表就会导致主服务器的SQL大量积压,未被同步到从服务器,就导致了主从不一致,也就是主从延迟
    2022-01-01
  • MySQL 查看库中大表信息的几种方法

    MySQL 查看库中大表信息的几种方法

    本文主要介绍了MySQL 查看库中大表的几种方法,为了识别可能影响数据库性能的表,下面主要了4种方式,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • Mysql快速插入千万条数据的实战教程

    Mysql快速插入千万条数据的实战教程

    这篇文章主要给大家介绍了关于Mysql快速插入千万条数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 详解MySQL数据库之触发器

    详解MySQL数据库之触发器

    这篇文章主要介绍了MySQL数据库之触发器的相关资料,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-09-09
  • 浅析mysql 定时备份任务

    浅析mysql 定时备份任务

    这篇文章主要介绍了mysql 定时备份任务的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 简单了解mysql InnoDB MyISAM相关区别

    简单了解mysql InnoDB MyISAM相关区别

    这篇文章主要介绍了简单了解mysql InnoDB MyISAM相关区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • MySQL Flink Watermark实现事件时间处理的关键技术

    MySQL Flink Watermark实现事件时间处理的关键技术

    Flink Watermark是Flink流处理框架中实现事件时间处理的关键技术之一。它是通过一种机制来解决数据乱序和延迟的问题,使得Flink可以在处理迟到的数据时保证结果的准确性。Flink Watermark可以在数据流中插入一个时间戳,将数据流转化为具有时间维度的数据集合
    2023-05-05

最新评论