当前位置: 首页 > article >正文

JSON_EXTRACT 使用

JSON_EXTRACT 是 MySQL 中的一个函数,用于从 JSON 文本中提取值。以下是 JSON_EXTRACT 的主要用途和特点:

  • 提取 JSON 值:可以从 JSON 字符串中提取一个或多个值。
  • 路径表达式:使用路径表达式来指定要提取的数据位置。路径表达式以美元符号 $ 开头,后跟点 . 或方括号 [] 来指定路径。
  • 返回类型:返回的结果类型取决于提取的值。如果提取的是单个值,返回类型通常是字符串或数字;如果提取的是多个值,返回类型是 JSON 数组。

示例

假设有一个表 users,其中有一列 data 存储了 JSON 数据:

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

INSERT INTO users (id, data) VALUES 
(1, '{"name": "Alice", "age": 25, "address": {"city": "New York"}}'),
(2, '{"name": "Bob", "age": 30, "address": {"city": "Los Angeles"}}');
提取单个值
SELECT JSON_EXTRACT(data, '$.name') AS name FROM users;

结果:

name
“Alice”
“Bob”
提取嵌套值
SELECT SELECT JSON_EXTRACT(JSON_EXTRACT(data,'$.address'),'$.city')  AS city FROM users;

注意:以下写法不好使

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

结果:

city
“New York”
“Los Angeles”
提取多个值
SELECT JSON_EXTRACT(data, '$.name', '$.age') AS name_age FROM users;

结果:

name_age
[“Alice”, 25]
[“Bob”, 30]

注意事项

  • 如果路径表达式不匹配任何值,JSON_EXTRACT 返回 NULL
  • 路径表达式中的键名必须用双引号 " 包围。
  • 可以使用通配符 * 来匹配多个路径。
  • 如果去掉返回结果的引号 使用 JSON_UNQUOTE
SELECT  JSON_UNQUOTE(JSON_EXTRACT(data, '$.name', '$.age')) AS name_age FROM users;

http://www.kler.cn/a/416157.html

相关文章:

  • 【青牛科技】2K02 电动工具专用调速电路芯片描述
  • 【C++】数据类型的存储范围与 typedef 的深度解析
  • 微服务之短信验证服务配置完后junit单元测试短信发送失败
  • c#:winform调用bartender实现打印(包含打印机的选择以及实际打印)
  • VirtIO实现原理之数据结构与数据传输演示(2)
  • 如何给GitHub的开源项目贡献PR
  • 使用系统内NCCL环境重新编译Pytorch
  • 2023年MathorCup高校数学建模挑战赛—大数据竞赛B题电商零售商家需求预测及库存优化问题求解全过程文档及程序
  • C++设计模式之构造器
  • 基于Django SimpleUI实现完整的云管理系统实战教程
  • SycoTec 4060 ER-S德国高精密主轴电机如何支持模具的自动化加工?
  • 【docker】镜像
  • 【设计模式】【行为型模式(Behavioral Patterns)】之状态模式(State Pattern)
  • 工作中Linux 内核的链表算法的使用
  • 单片机位数对性能会产生什么影响?!
  • 基于 SpringBoot 打造夕阳红公寓人性化管理系统的核心要素
  • 速盾:介绍一下高防cdn的缓存响应事什么功能?
  • 【无标题】多模态对齐
  • 告别电脑硬盘容量焦虑,以极空间为例,使用NAS免费为电脑扩容
  • 省级新质生产力数据(蔡湘杰版本)2012-2022年