MySQL中查询json格式的字段实例详解

MySQL中查询json格式的字段需要使用JSON函数。此处介绍几个常用的MySQL JSON函数。

JSON_EXTRACT

JSON_EXTRACT可以用来提取json中的某个值,其语法如下:

JSON_EXTRACT(json_obj, path)

其中,json_obj表示json对象,path表示要提取的值的路径。路径可以是简单的key或者是嵌套的,例如:

SELECT JSON_EXTRACT('{"name": "John", "age": 30, "city": "New York", "pets": [{"name": "Puppy", "age": 3}, {"name": "Kitty", "age": 2}]}' , '$.name');

其中'$.name'表示提取name的值。输出结果为"John"

JSON_KEYS

JSON_KEYS可以获取json中的所有key,其语法如下:

JSON_KEYS(json_obj)

例如:

SELECT JSON_KEYS('{"name": "John", "age": 30, "city": "New York", "pets": [{"name": "Puppy", "age": 3}, {"name": "Kitty", "age": 2}]}' );

输出结果为["name", "age", "city", "pets"]

示例1

以下是一个示例,将json格式的数据插入数据库中:

CREATE TABLE `users` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255),
  `info` JSON,
  PRIMARY KEY (`id`)
);

INSERT INTO `users` (`name`,`info`)
VALUES ('John Doe', '{"age": 30, "city": "New York"}'),
       ('Jane Wilson', '{"age": 25, "city": "Los Angeles", "pets": [{"name": "Puppy", "age": 3}, {"name": "Kitty", "age": 2}]}');

其中info字段为json格式。

下面就可以使用JSON_EXTRACT来查询json中的值:

SELECT name, JSON_EXTRACT(info, '$.age') as age, JSON_EXTRACT(info, '$.city') as city FROM users;

其中'$.age'表示提取age的值,'$.city'表示提取city的值。查询结果如下:

name age city
John Doe 30 New York
Jane Wilson 25 Los Angeles

示例2

以下是一个示例,使用JSON_KEYS获取json中的所有key:

SELECT name, JSON_KEYS(info) as info_keys FROM users;

查询结果如下:

name info_keys
John Doe ["age", "city"]
Jane Wilson ["age", "city", "pets[0]", "pets[1]"]

其中每个key都可以使用JSON_EXTRACT来提取具体的值。例如:

SELECT name, JSON_EXTRACT(info, '$.pets[1].name') as pet1_name FROM users WHERE JSON_SEARCH(info, 'one', 'Kitty') IS NOT NULL;

其中JSON_SEARCH(info, 'one', 'Kitty')用于查找Kitty是否出现在info字段中,如果返回NULL则表示没有出现。查询结果如下:

name pet1_name
Jane Wilson Kitty

以上就是MySQL中查询json格式的字段的实例详解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL中查询json格式的字段实例详解 - Python技术站

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

相关文章

  • C语言编程之三个方法实现strlen函数

    以下是详细的讲解“C语言编程之三个方法实现strlen函数”的完整攻略。 目录 什么是strlen函数 方法一:遍历字符串计数 方法二:使用指针递增统计 方法三:调用标准库函数strlen 总结 什么是strlen函数 strlen是一个C语言标准库函数,用来计算字符串的长度,即该字符串中字符的个数。函数的原型如下: size_t strlen(const …

    C 2023年5月23日
    00
  • win10系统激活失败提示错误代码0xc004f074的故障原因及解决方法

    win10系统激活失败提示错误代码0xc004f074的故障原因及解决方法 当用户在升级或重新安装Windows 10操作系统时,可能会遇到系统激活失败的问题,并显示错误代码0xc004f074,这个错误代码表示激活密钥无法验证。以下是可能导致这个问题的原因和解决方法。 原因 无法连接到激活服务器:如果无法连接到激活服务器,那么激活失败的问题就会发生。可能是…

    C 2023年5月23日
    00
  • c#添加Newtonsoft.Json包的操作

    下面是详细的“c#添加Newtonsoft.Json包”的完整攻略。 步骤一:创建一个C#项目 首先,我们需要创建一个C#项目,这个项目可以是任何类型的,比如控制台应用程序、WPF应用程序、Web应用程序等。 步骤二:添加Newtonsoft.Json包 接下来,我们需要使用NuGet工具在C#项目中添加Newtonsoft.Json包。NuGet是一个用于…

    C 2023年5月23日
    00
  • C语言打印杨辉三角形的示例代码

    下面我将为你详细讲解如何用C语言打印杨辉三角形的示例代码的完整攻略。 步骤一:了解杨辉三角形 在编写代码之前,我们需要先了解一下杨辉三角形的规律。杨辉三角形是一种规律的数字三角形。它的第一行为1,第二行为1,1,第三行为1,2,1,第四行为1,3,3,1,以此类推。每一行的数字都是由上一行相邻两个数字相加得到的。 步骤二:使用循环打印杨辉三角形 为了打印杨辉…

    C 2023年5月24日
    00
  • Json格式详解

    Json格式详解 什么是Json? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,并易于机器解析和生成。它基于JavaScript语言的一个子集。JSON采用键值对的方式来描述信息,通过大括号{}包围对象,通过方括号[]包围数组。 Json格式规则 数据在名称/值对中 数据由逗号分隔 大括号{}包…

    C 2023年5月23日
    00
  • C程序 查找1-1000之间阿姆斯特朗数字

    下面为您详细讲解C程序查找1-1000之间阿姆斯特朗数字的完整使用攻略。 背景介绍 阿姆斯特朗数又称为自恋数,是指一个 n 位数,它的每个数字的 n 次幂之和正好等于它本身。例如:$1^3+5^3+3^3=153$,$1^4+6^4+3^4+4^4=1634$。 代码实现 #include <stdio.h> #include <math.…

    C 2023年5月9日
    00
  • IP地址的分类 abcde类是如何划分的

    IP地址是计算机在网络上的标识,可以用来唯一定位到某个设备。IP地址按照网络的规模和需求,被分成了不同类别,分别为A、B、C、D、E五类。其中A、B、C三类用的最为广泛。 IP地址分类 IP地址根据网络规模的不同,可分为五类,如下: A类地址:以0开头,1-126的数字段,用于大型网络; B类地址:以10开头,128-191的数字段,用于中型网络; C类地址…

    C 2023年5月23日
    00
  • C语言栈的表示与实现实例详解

    C语言栈的表示与实现实例详解 栈的概念 栈是一种特殊的线性表,它具备后进先出(Last-In-First-Out,LIFO)的特性。栈实现的基本操作有入栈(push)和出栈(pop)两种。 栈的表示 栈可以通过数组或链表两种数据结构进行表示。 数组表示 数组表示的栈是一段连续的内存空间,可以使用数组下标代表每个栈元素的位置。数组的顶部指针用于标识当前栈顶元素…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部