mysql 如何使用JSON_EXTRACT() 取json值

当mysql存储JSON格式的数据时,我们需要对JSON进行提取。MySQL 5.7版本以上,提供了JSON_EXTRACT()函数来实现从JSON中提取值。

JSON_EXTRACT()函数的语法

JSON_EXTRACT(json_path)

json_path为JSON路径参数,返回该路径下的JSON值。

示例1

已知json字段'data'的值为:

{
  "name": "Tom",
  "age": 20,
  "address": {
    "province": "Guangdong",
    "city": "Shenzhen",
    "district": "Futian"
  },
  "friends": [
    {"name": "John", "age": 22},
    {"name": "Bob", "age": 21}
  ]
}

我们想要获取Tom的名字,可以使用以下语句:

SELECT JSON_EXTRACT(data, "$.name") AS username FROM table;

这里JSON_EXTRACT()函数将返回"name"字段对应的值"Tom"。

示例2

已知json字段'data'的值为:

{
  "product": {
    "id": "12345",
    "name": "手机",
    "price": {
      "sale": {
        "amount": 1999.00,
        "currency": "RMB"
      }
    }
  }
}

我们想要获取商品名称以及商品的售价,我们可以使用以下代码:

SELECT 
  JSON_EXTRACT(data, "$.product.name") AS product_name,
  JSON_EXTRACT(data, "$.product.price.sale.amount") AS product_price
FROM table;

这里JSON_EXTRACT()函数将返回"value"字段对应的值"手机"以及"amount"字段对应的值1999.00。

注意:需要使用双引号将json_path包围起来。

除了JSON_EXTRACT()函数以外,还有其他JSON处理函数,如JSON_CONTAINS()和JSON_ARRAYAGG()等。这些函数在处理JSON数据时提供了很大的便利。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql 如何使用JSON_EXTRACT() 取json值 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言编程递归算法实现汉诺塔

    C语言编程递归算法实现汉诺塔的完整攻略 汉诺塔问题介绍 汉诺塔问题是经典的递归算法问题,首先是在1908年由Edouard Lucas提出,原始的问题定义为: 有三根相邻的柱子A、B、C,A柱子上有64个盘子,盘子大小不等,大的在下,小的在上。现在要把A柱子上的盘子全部移到C柱子上,并且每次只能移动一个盘子,大盘子不能叠在小盘子上面,请问至少需要多少次移动?…

    C 2023年5月23日
    00
  • Qt中JSON操作的具体使用

    下面是关于Qt中JSON操作的具体使用的完整攻略。 什么是JSON JSON是JavaScript Object Notation的缩写,是一种轻量级的数据交换格式。JSON 格式中采用了类似于JavaScript对象的键值对的方式,用于表示结构化的数据。JSON格式常用于数据交互,自然语言的表示,等等。 Qt中JSON操作的具体使用 Qt提供了QJsonD…

    C 2023年5月23日
    00
  • Ubuntu中为Android系统上实现内置C可执行程序测试Linux内核驱动程序

    以下是详细讲解“Ubuntu中为Android系统上实现内置C可执行程序测试Linux内核驱动程序”的完整攻略。 简介 在实现Android系统的过程中,需要通过内核驱动程序来实现硬件设备的访问和控制,而在开发内核驱动的过程中需要进行测试。本文将介绍如何在Ubuntu操作系统上测试Android系统的内核驱动程序。 步骤 1. 在Ubuntu操作系统中搭建开…

    C 2023年5月23日
    00
  • C语言程序 实现CHECKSUM

    C语言程序实现CHECKSUM使用攻略 简介 Checksum是一种验证数据完整性的方法,通常用于网络传输。C语言可以通过计算数据的校验和来实现Checksum,并对接收到的数据进行校验。 计算Checksum 在C语言中,计算Checksum的方法是将数据的每个字节相加并取反,作为Checksum值。具体实现可以参考下面的示例代码: unsigned ch…

    C 2023年5月9日
    00
  • C程序 两个复数相加

    C程序:两个复数相加使用攻略 什么是复数? 复数是由实部和虚部组成的数字,可以表示为 a+b*i,其中 a 为实部,b 为虚部,i 为虚数单位。 目标 本篇攻略旨在帮助大家编写一个C程序,用于计算两个复数的和。程序将要接收四个变量,分别表示两个复数的实部和虚部,计算他们的和并返回结果。 程序流程 程序的大致流程如下: 首先定义两个结构体数据类型 comple…

    C 2023年5月9日
    00
  • C++深复制和浅复制讲解

    C++中的复制操作包含深复制和浅复制两种方式。简单来说,浅复制只复制指针而不复制指针指向的内存空间,而深复制会复制指针和指针指向的内存空间。 一般情况下,我们需要使用深复制,以避免浅复制造成指针指向错误的情况。 深复制的实现方式 在C++中,可以通过使用拷贝构造函数和赋值操作符实现深复制。 拷贝构造函数 拷贝构造函数是一种特殊的构造函数,用于在创建对象时,用…

    C 2023年5月23日
    00
  • Android json解析及简单例子

    好的。首先需要了解什么是JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,用于在不同的平台之间传输数据,常用于Web API的数据交换。在Android开发中,我们经常会用到JSON格式的数据,因此,掌握Android JSON解析技术是至关重要的。 JSON解析的基本方法 Android中常用的JSON解…

    C 2023年5月23日
    00
  • Shell在日常工作中的应用实践

    作者:京东物流 李光新 1 Shell可以帮我们做什么 作为一名测试开发工程师,在与linux服务器交互过程中,大都遇到过以下这些问题: •一次申请多台服务器,多台服务器需要安装相同软件,配置相同的环境,同样的操作需要重复多次; •工作中经常会使用命令行命令来完成我们的一些操作,但是有些命令使用率很高,而且很长,每次都全部敲进去势必会浪费很多时间(比如查日志…

    C语言 2023年4月22日
    00
合作推广
合作推广
分享本页
返回顶部