You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

标准SQL中如何使用JSON_EXTRACT提取JSON数组内的指定字段值

解决JSON_EXTRACT提取数组内字段失效问题

失效原因

  • 你存储的目标内容第一层是数组结构,原有代码的JSON路径$.name是直接从根节点匹配name字段,和实际结构不匹配,所以无法返回结果。
  • 如果你的列中实际存储的是多段独立JSON数组用空格拼接的非标准格式(即你给出的示例[{"name": "my_name_1"}] [{"name": "my_name_2"}]...为真实存储内容),整段内容不属于合法JSON结构,也会导致JSON解析类函数执行失败。

对应解决方案

场景1:列中仅存储单段数组[{"name": "my_name_1"}](示例中后续内容为测试冗余)

直接修改JSON路径,指定读取数组第0位元素的name属性即可:
JSON_EXTRACT_SCALAR(column_name, "$[0].name")

场景2:列中确实是多段JSON数组拼接的字符串

先通过字符串函数截取第一段完整的JSON数组,再做解析,以MySQL语法为例,其他SQL引擎替换对应字符串函数即可:

SELECT JSON_EXTRACT_SCALAR(
    -- 截取第一个完整的JSON数组段并补全闭合符号
    CONCAT(SUBSTRING_INDEX(column_name, ']', 1), ']'),
    "$[0].name"
) AS first_name 
FROM your_table;

内容的提问来源于stack exchange,提问作者selvinkb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:36:03