Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL函数JSON_EXTRACT

MySQL数据库函数之JSON_EXTRACT示例代码

作者:白萝卜弟弟

这篇文章主要介绍了MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对象属性、数组元素和嵌套结构的访问,示例展示了如何提取简单值、嵌套值和数组中的值,需要的朋友可以参考下

前言

在 MySQL 中,JSON_EXTRACT() 函数用于从 JSON 文档中提取一个或多个值。这个函数非常有用,特别是在处理存储在 JSON 格式中的复杂数据时。下面是一些关于如何使用 JSON_EXTRACT() 的详细说明和示例。

基本语法

JSON_EXTRACT(json_doc, path [, path] ...)

路径表达式

路径表达式使用类似于 JavaScript 的对象和数组访问语法:

示例

示例 1: 提取简单值

假设有一个表 users,其中有一个字段 data 存储了用户的 JSON 数据:

CREATE TABLE users (
    id INT PRIMARY KEY,
    data JSON
);

INSERT INTO users (id, data) VALUES
(1, '{"name": "Alice", "age": 30, "city": "New York"}'),
(2, '{"name": "Bob", "age": 25, "city": "Los Angeles"}');

我们可以使用 JSON_EXTRACT() 提取每个用户的名字:

SELECT id, JSON_EXTRACT(data, '$.name') AS name
FROM users;

输出结果:

+----+--------+
| id | name   |
+----+--------+
| 1  | "Alice"|
| 2  | "Bob"  |
+----+--------+

示例 2: 提取嵌套值

假设 JSON 数据中包含嵌套的对象:

INSERT INTO users (id, data) VALUES
(3, '{"name": "Charlie", "age": 35, "address": {"street": "123 Main St", "city": "Chicago"}}');

我们可以提取嵌套的街道地址:

SELECT id, JSON_EXTRACT(data, '$.address.street') AS street
FROM users;

输出结果:

+----+-----------------+
| id | street          |
+----+-----------------+
| 1  | NULL            |
| 2  | NULL            |
| 3  | "123 Main St"   |
+----+-----------------+

示例 3: 提取数组中的值

假设 JSON 数据中包含一个数组:

INSERT INTO users (id, data) VALUES
(4, '{"name": "David", "age": 40, "hobbies": ["reading", "traveling", "cooking"]}');

我们可以提取数组中的第一个爱好:

SELECT id, JSON_EXTRACT(data, '$.hobbies[0]') AS hobby
FROM users;

输出结果:

+----+----------+
| id | hobby    |
+----+----------+
| 1  | NULL     |
| 2  | NULL     |
| 3  | NULL     |
| 4  | "reading"|
+----+----------+

注意事项

总结 

到此这篇关于MySQL数据库函数之JSON_EXTRACT的文章就介绍到这了,更多相关MySQL函数JSON_EXTRACT内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文