MySQL 如何在 MySQL 中搜索 JSON 数组?

MySQL 如何在 MySQL 中搜索 JSON 数组?

MySQL 5.7 版本及以后的版本中,可以在 SQL 语句中使用 JSON 函数来搜索 JSON 格式的数据类型,包括 JSON 对象和 JSON 数组。下面我们来看一下如何在 MySQL 中搜索 JSON 数组。

阅读更多:MySQL 教程

创建表和数据

首先,我们需要创建一个包含 JSON 数组的表,并往里面插入一些数据。

CREATE TABLE `students` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `scores` json DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `students` (`name`, `scores`) VALUES
  ('小明', '[{"course": "数学", "score": 85}, {"course": "语文", "score": 90}, {"course": "英语", "score": 80}]'),
  ('小红', '[{"course": "数学", "score": 95}, {"course": "语文", "score": 85}, {"course": "英语", "score": 90}]');
SQL

搜索 JSON 数组

假设现在我们需要查询数学成绩在 90 分以上的学生信息,我们可以使用 json_contains 函数来实现。

SELECT `name`, `scores`
FROM `students`
WHERE json_contains(`scores`, '{"course": "数学", "score": {"$gt": 90}}');
SQL

结果如下:

name scores
小红 [{“course”: “数学”, “score”: 95}, {“course”: “语文”, “score”: 85}, {“course”: “英语”, “score”: 90}]

我们可以看到,通过 json_contains 函数,我们成功地找到了数学成绩在 90 分以上的学生信息。

总结

通过以上的实例,我们可以发现,使用 MySQL 中的 JSON 函数可以非常方便地搜索 JSON 类型的数据,提高了 SQL 语句的灵活性,使数据处理更加高效和方便。希望这篇文章能够帮助大家学习 MySQL 中 JSON 函数的使用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册