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

使用JSON_QUERY()提取JSON字段汽车名称返回空值问题求助

错误原因及修正方案

核心错误点

  • JSON路径匹配错误:cars字段存储的是JSON数组结构,数组内的元素才包含element嵌套对象,你写的路径$.name直接从根节点查找name属性,完全跳过了数组层和element层,和实际存储结构不匹配,自然无法匹配到值。
  • 函数使用错误:JSON_QUERY仅用于提取JSON中的对象或数组类型的内容,你要提取的name是字符串类型的标量值,需要使用提取标量值的专用JSON函数,多数SQL方言中对应函数为JSON_VALUE。

修正后查询语句

如果你的cars字段每个值都只有1个车辆元素,使用以下语句即可正常取值:

SELECT JSON_VALUE(cars, '$[0].element.name') AS car_names
FROM myTable
LIMIT 100

补充说明:如果cars数组可能包含多个车辆条目,需要先将数组展开为多行再提取对应值,MySQL实现示例如下:

SELECT j.car_name
FROM myTable t,
JSON_TABLE(
  t.cars, 
  '$[*]' COLUMNS (car_name VARCHAR(255) PATH '$.element.name')
) j
LIMIT 100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:54:04