mysql8.0 JSON_CONTAINS的使用说明

mysql8.0 JSON_CONTAINS函数详解

简介

JSON_CONTAINS()函数用于检查是否存在指定JSON值。在MySQL8.0中,可以用该函数判断JSON数组或对象是否包含某个JSON值。

该函数返回值boolean类型,如果待查找的JSON存在于目标JSON中,则返回1,否则返回0。

JSON_CONTAINS()函数的完整语法如下:

JSON_CONTAINS(json_doc, json_value, [path])

其中,json_doc是需要查询的JSON,json_value是要查找的JSON值,path是可选参数,表示待查询JSON的路径。

示例1

比如有一个students表,存储了学生的姓名和选修的课程。

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    courses JSON
);

INSERT INTO students (name,courses) VALUES
  ('John', '["Biology","Chemistry","Math"]'),
  ('Alice','["Computer Science","Math","Physics"]'),
  ('Bob',  '["Biology","Geology","Economics"]');

需要查询选修了Math课程的学生有哪些,运用JSON_CONTAINS()函数可以写出如下SQL:

SELECT * FROM students WHERE JSON_CONTAINS(courses, '"Math"');

结果:

+----+-------+-----------------------------+
| id | name  | courses                     |
+----+-------+-----------------------------+
| 1  | John  | ["Biology","Chemistry","Math"] |
| 2  | Alice | ["Computer Science","Math","Physics"]|

通过SQL运用JSON_CONTAINS()函数查找JSON数组中是否包含某个元素,实现了查找JSON中的值,可以方便的对JSON进行操作。

示例2

比如有一个person表,存储了人员信息和他们的工作经历,其中工作经历是一个JSON对象。

CREATE TABLE person (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    job_history JSON
);

INSERT INTO person (name,job_history) VALUES
  ('John', '{"company":"Microsoft","title":"Engineer","duration":2}'),
  ('Alice','{"company":"IBM","title":"Manager","duration":5}'),
  ('Bob',  '{"company":"Google","title":"Developer","duration":3}');

需要查询工作经历中曾经在Microsoft公司工作的人员,用JSON_CONTAINS()函数可以写出如下SQL:

SELECT * FROM person WHERE JSON_CONTAINS(job_history, '{"company":"Microsoft"}');

结果:

+----+------+------+-----------------------------------------------------+
| id | name | job_history                                           |
+----+------+------+-----------------------------------------------------+
| 1  | John | {"company":"Microsoft","title":"Engineer","duration":2} |

这个例子中,查询的是JSON对象是否包含某元素,实现了查找JSON对象中的值。

关于MySQL8.0中JSON_CONTAINS()函数的基础使用,相信通过以上示例可以相对地清晰理解了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql8.0 JSON_CONTAINS的使用说明 - Python技术站

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

相关文章

  • C语言实现纸牌24点小游戏

    C语言实现纸牌24点小游戏 简介 纸牌24点是一种常见的解谜游戏,在该游戏中,玩家需要选取若干个数值不同的纸牌,通过不断组合计算,使其总和等于24。该游戏是一款简单却又富有乐趣的解谜游戏,特别适合喜欢数学和逻辑思维的人群。 本文将演示如何使用C语言实现纸牌24点小游戏。读者需具备C语言基础和基本的编程能力。 实现方法 在C语言中,可以使用递归的方法来实现该游…

    C 2023年5月22日
    00
  • C语言实现循环打印星号图形再镂空

    下面是“C语言实现循环打印星号图形再镂空”的完整攻略。 基本思路: 通过循环嵌套打印出星号图形; 按照规定镂空区域,将对应位置上的星号替换为空格。 代码实现: 以下是一份示例代码,仅供参考: #include<stdio.h> int main() { int i,j,m,n; printf("请输入一个行数:"); scan…

    C 2023年5月30日
    00
  • Java 详解异常的处理机制

    Java 详解异常的处理机制 在 Java 编程中,异常处理机制是一项重要的功能,它可以让我们更好地控制程序的运行过程,并避免由于意外情况导致程序崩溃或者异常退出。在本文中,我们将详细讲解 Java 中的异常处理机制,并提供一些实际的代码示例来帮助你理解这一机制的使用方法。 异常的类型 在 Java 中,异常分为两种类型:受检异常(checked excep…

    C 2023年5月23日
    00
  • C语言错误使用解引操作

    C语言错误使用解引操作的完整使用攻略 什么是解引操作 解引操作是指使用指针变量获取指针变量所指向地址上存储的数据。在 C 语言中,我们使用 * 进行解引操作,例如: int a = 100; int *p = &a; int b = *p; // 这里的 *p 就是解引操作,将 p 指向的地址上的值赋值给 b 错误使用解引操作的问题 错误使用解引操作…

    C 2023年5月9日
    00
  • VS2019开发Linux C++程序的实现步骤

    实现步骤: 安装Visual Studio 2019(注意:需要安装Linux工作负载) 在VS中安装Linux C++开发组件 在VS中创建一个新的Linux C++ 项目(例如console应用程序项目) 配置Linux环境,包括SSH连接、CMake、交叉编译器等。可以参考官方文档和其他教程进行配置。 编写C++代码并进行调试。在VS中按F5可启动调试…

    C 2023年5月23日
    00
  • c++ 中__declspec 的用法详解

    下面是对 __declspec 在 C++ 中的详细讲解: 1. __declspec 的定义 __declspec 是 MicroSoft 编译器用来扩展代码基本属性的关键字,用于声明一个特殊的属性。通过使用 __declspec,开发者可以控制导出和从 DLL 中导入函数或数据,以及控制函数的调用约定、内联性、对齐性等属性。 2. __declspec …

    C 2023年5月23日
    00
  • C++程序代码优化的方法实例大全

    C++程序代码优化的方法实例大全 本文将为大家介绍C++程序代码优化的方法实例大全。通过本文的内容,可以帮助你更好地优化C++程序的代码,提高程序的性能。 一、代码优化的目标 代码优化的主要目标包括: 提高程序的运行速度和响应速度; 减少程序的内存占用和磁盘占用; 提高程序的可读性和可维护性。 二、优化方法 下面是几种常见的C++程序代码优化方法。 1. 使…

    C 2023年5月23日
    00
  • Win7系统无法创建休眠文件且提示错误代码0xc000007f的解决方法

    Win7系统无法创建休眠文件且提示错误代码0xc000007f的解决方法 问题描述 在 Win7 系统中,有时会出现无法创建休眠文件的情况,并且会提示错误代码 0xc000007f,导致无法使用计算机的休眠功能。这种情况可能会影响用户的使用体验,因此需要及时解决。 解决方法 方法一:修复系统文件 1.打开开始菜单,在搜索栏中输入“cmd”,然后右键单击“命令…

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