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日

相关文章

  • Adobe Photoshop CC 2019正式发布 PS CC 2019更新内容汇总(附下载地址)

    Adobe Photoshop CC 2019正式发布 Adobe Photoshop CC 2019是Adobe公司推出的最新版Photoshop图形处理软件,其于2018年10月15日正式发布。新版本的Photoshop CC带来了许多新的功能和改进,下面将对其更新内容进行详细的说明。 更新内容汇总 新增了画笔工具的设定和改进,使得用户在使用过程中更加得…

    C 2023年5月22日
    00
  • C语言实现BF算法案例详解

    C语言实现BF算法案例详解 什么是BF算法 BF算法是一种简单的字符串匹配算法,它的全称为Brute Force算法,中文翻译为暴力匹配算法。该算法的思想是对匹配串中与主串中的字符逐一进行比较,直到匹配成功或者不匹配结束。 实现BF算法的步骤 步骤一:暴力匹配 我们可以从主串的第一个字符开始,每次匹配一个字符,直到匹配成功或者匹配失败为止。如果匹配成功,就继…

    C 2023年5月22日
    00
  • VS中的scanf_s函数和scanf用法及说明

    VS中的scanf_s函数和scanf用法及说明 1. scanf函数 scanf() 是 C 语言的标准输入函数,可用来接收用户输入的数据。该函数原型为: scanf(const char *format, …) 其中,format 为格式化字符串,”…” 表示可变参数,即可以接受任意个数的参数。 我们可以通过 scanf() 函数来接收用户输入的…

    C 2023年5月23日
    00
  • c语言实现奇偶排序算法

    下面是详细讲解“c语言实现奇偶排序算法”的完整攻略: 什么是奇偶排序算法 奇偶排序算法,也称为奇偶交换排序算法,是一种简单的排序算法。它的特点是同时进行奇数与偶数位置的元素比较和交换,直到序列有序为止。 奇偶排序算法的实现 奇偶排序算法的实现过程可以分为两个阶段,一阶段是进行奇偶位置上元素的比较和交换,二阶段是将相邻的元素比较和交换,两个阶段交替执行,直到序…

    C 2023年5月23日
    00
  • C++强制类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)

    下面是关于C++中四种强制类型转换的攻略。 1. static_cast static_cast是安全的类型转换,主要用于基本数据类型之间的转换,还可以在继承类之间进行类型转换。它可以将一个值从一种数值类型转换为另一种数值类型或提升或降低算术类型的类型。在用于指针时,可以将任何类型的指针转换为void指针,也可以将void指针转换为任何类型的指针。但是,它不…

    C 2023年5月23日
    00
  • Java的Jackson库的使用及其树模型的入门学习教程

    Java的Jackson库的使用及其树模型的入门学习教程 什么是Jackson库 Jackson是一个在Java平台上解析JSON的框架,它是一个高性能的开源库,同时还具有灵活而强大的功能,可以方便地将Java对象序列化为JSON格式的数据,或者将JSON数据反序列化为Java对象。 Jackson库的基本使用 Jackson库的基本使用分为序列化和反序列化…

    C 2023年5月23日
    00
  • 使命召唤14二战提示0xc000007b错误怎么办?

    当玩家在打开“使命召唤14二战”游戏时,遇到错误提示0xc000007b错误时,可能会感到困惑和沮丧。此错误提示意味着游戏无法启动,并且玩家将无法进入游戏。但是,这种错误通常可以通过以下步骤来修复: STEP 1:重新安装Microsoft Visual C++ Redistributable包 此错误的一个常见原因是缺失或损坏了Microsoft Visu…

    C 2023年5月23日
    00
  • gin解析json格式的数据出错的处理方案

    当使用 Gin 作为 Web 框架开发应用程序时,我们通常需要处理 JSON 格式的数据。然而在解析 JSON 数据时,可能会出现解析出错的情况。本文将介绍如何使用 Gin 解析 JSON 格式的数据出错的处理方案。 问题描述 当我们使用 Gin 解析 JSON 格式的数据时,如果 JSON 数据格式不正确,那么 Gin 会返回以下错误信息: { &quot…

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