MySQL查询和筛选存储的JSON数据的操作方法

 更新时间:2024年01月08日 16:34:02   作者:No8g攻城狮  
MySQL是常用的关系型数据库管理系统,为了支持非结构化数据的存储和查询,MySQL引入了对JSON数据类型的支持,JSON是一种轻量级的数据交换格式,在现代应用程序中得到了广泛应用,处理和存储非结构化数据变得越来越重要,本文给大家介绍mysql查询JSON数据的相关知识,一起看看吧

一、背景介绍

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,在现代应用程序中得到了广泛的应用。处理和存储非结构化数据变得越来越重要。MySQL 是一种常用的关系型数据库管理系统,为了支持非结构化数据的存储和查询,于是 MySQL引入了对JSON数据类型的支持。

MySQL从5.7.8版本开始添加了对JSON的支持,使得我们可以在MySQL数据库中存储和查询JSON格式的数据。本文将介绍如何使用MySQL查询和筛选存储的JSON数据,并提供相应的代码示例。

二、支持的JSON数据类型

从MySQL 5.7.8版本开始,MySQL引入了对JSON数据类型的支持。MySQL可以存储任意的JSON数据,包括对象、数组、字符串等。并且MySQL还对JSON数据类型还提供了一系列的操作函数和运算符,以便于对JSON数据进行查询和操作。

三、基础数据

3.1 创建表

DROP TABLE IF EXISTS `my_table`;
CREATE TABLE `my_table`  (
  `id` int NOT NULL,
  `message` json NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

上述示例创建了一个名为 my_table 的表,包含一个名为 message 的JSON列。message列可以存储任意的JSON数据。

3.2 插入 JSON 数据

要在JSON列中插入数据,可以使用JSON函数将JSON字符串转换为JSON数据类型。以下是一个示例:

INSERT INTO `my_table` (`id`, `message`) VALUES (1, '{\"age\": 30, \"name\": \"John\"}');
INSERT INTO `my_table` (`id`, `message`) VALUES (2, '{\"age\": 40, \"name\": \"Mary\"}');
INSERT INTO `my_table` (`id`, `message`) VALUES (3, '{\"age\": 50, \"name\": \"Tom\"}');
INSERT INTO `my_table` (`id`, `message`) VALUES (4, '{\"age\": 60, \"name\": \"Jermy\"}');

上述示例在my_table表中插入了4条记录,其中 message 列包含一个JSON对象。

3.3 查询 JSON 数据

可以使用->或者->>运算符来查询JSON数据。->运算符返回JSON对象的属性值,->>运算符返回属性值的字符串表示。

以下是两个

查询JSON数据的示例1:

SELECT message->'$.name' AS name FROM my_table;

结果如下:

在这里插入图片描述

查询示例2:

SELECT * FROM my_table WHERE JSON_EXTRACT(message, '$.age') > 40

结果如下:

在这里插入图片描述

四、操作函数

MySQL提供了一系列的JSON数据操作函数,以方便对JSON数据进行查询和操作。以下是一些常用的JSON数据操作函数:

4.1 JSON_OBJECT

JSON_OBJECT函数用于创建一个JSON对象。以下是一个示例:

SELECT JSON_OBJECT('name', 'John', 'age', 30) AS message;

上述示例创建了一个名为 message 的JSON对象,包含name和age属性。

在这里插入图片描述

4.2 JSON_ARRAY

JSON_ARRAY函数用于创建一个JSON数组。以下是一个示例:

SELECT JSON_ARRAY('apple', 'banana', 'orange') AS fruits;

上述示例创建了一个名为fruits的JSON数组,包含三个元素。

在这里插入图片描述

4.3 JSON_EXTRACT

JSON_EXTRACT函数用于提取JSON数据中的值。以下是一个示例:

SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name') AS name;

上述示例从JSON数据中提取了name属性的值。

在这里插入图片描述

以上只是最基本的用法,关于MySQL操作JSON数据类型的函数还有很多高级用法,等用到的时候再学。

本文完结!

到此这篇关于MySQL如何查询和筛选存储的JSON数据的文章就介绍到这了,更多相关mysql查询JSON数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL连接查询你真的学会了吗?

    MySQL连接查询你真的学会了吗?

    日常使用数据库查询语句时,单表查询尝尝不能满足项目的业务需求,在项目开发过程中,有很多需求都是要涉及到多表的连接查询,这篇文章主要给大家介绍了关于MySQL连接查询的相关资料,需要的朋友可以参考下
    2021-06-06
  • MySQL 数据库中数据表超详细的基本操作

    MySQL 数据库中数据表超详细的基本操作

    这篇文章主要介绍了MySQL 数据库中数据表的基本操作,下面文章会从创建表的基本语法伊利举例说明概括全篇数据表的基本操作详情,需要的小伙伴可以参考一下文章的具体内容,希望对你有所帮助
    2021-12-12
  • linux系统ubuntu18.04安装mysql 5.7

    linux系统ubuntu18.04安装mysql 5.7

    这篇文章主要为大家详细介绍了linux系统ubuntu18.04安装mysql 5.7,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Canal监听MySQL的实现步骤

    Canal监听MySQL的实现步骤

    本文主要介绍了Canal监听MySQL的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • MySQL binlog日志记录格式写入机制及相关参数讲解

    MySQL binlog日志记录格式写入机制及相关参数讲解

    这篇文章主要为大家介绍了MySQL binlog日志记录格式写入机制及相关参数使用讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • MySQL 存储过程的基本用法介绍

    MySQL 存储过程的基本用法介绍

    我们大家都知道MySQL 存储过程是从 MySQL 5.0 开始逐渐增加新的功能。存储过程在实际应用中也是优点大于缺点。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程。
    2010-12-12
  • MySQL学习笔记之数据的增、删、改实现方法

    MySQL学习笔记之数据的增、删、改实现方法

    这篇文章主要介绍了MySQL学习笔记之数据的增、删、改实现方法,简单介绍了mysql实现数据的增、删、改相关语法与使用技巧,需要的朋友可以参考下
    2016-09-09
  • CentOS7下mysql 8.0.16 安装配置方法图文教程

    CentOS7下mysql 8.0.16 安装配置方法图文教程

    这篇文章主要为大家详细介绍了CentOS7下mysql 8.0.16 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • MySQL之复杂查询的实现

    MySQL之复杂查询的实现

    本文主要介绍了MySQL之复杂查询的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 详解mysql慢日志查询

    详解mysql慢日志查询

    这篇文章主要介绍了mysql慢日志查询的相关资料,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-09-09

最新评论