当前位置: 代码网 > it编程>编程语言>Javascript > MySQL数据库函数之JSON_EXTRACT示例代码

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

2025年02月13日 Javascript 我要评论
前言在 mysql 中,json_extract()函数用于从 json 文档中提取一个或多个值。这个函数非常有用,特别是在处理存储在 json 格式中的复杂数据时。下面是一些关于如何使用json_e

前言

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

基本语法

json_extract(json_doc, path [, path] ...)
  • json_doc: 要从中提取值的 json 文档。
  • path: 一个或多个路径表达式,用于指定要提取的值的位置。路径表达式以 $ 开头,表示 json 文档的根。

路径表达式

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

  • 对象属性:使用点 . 访问,例如 $.name
  • 数组元素:使用方括号 [] 访问,例如 $[0]
  • 嵌套结构:可以组合使用点和方括号,例如 $.address.street 或 $.items[0].name

示例

示例 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"|
+----+----------+

注意事项

  • json_extract() 返回的结果是一个 json 值,即使它是标量值(如字符串或数字)。如果需要将结果转换为标量类型,可以使用 cast 函数。例如:

    select id, cast(json_extract(data, '$.name') as char) as name
    from users;
    
  • 如果路径表达式指向的值不存在,json_extract() 将返回 null

  • 路径表达式中的索引是从 0 开始的。

总结 

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

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com