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

MySQL如何提取键名以@开头的JSON数据?

解决MySQL提取带@前缀JSON键的问题

可以在不修改表中JSON键名的前提下获取对应数据,问题出在JSON路径中特殊字符键的写法上,MySQL要求包含特殊字符的JSON键需要用双引号包裹起来。

修改后的SQL语句如下:

SELECT JSON_ARRAYAGG(JSON_OBJECT (
    'id', JSON_EXTRACT(INV_MASTER, "$[0].id[0]") ,
    'href', JSON_EXTRACT(INV_MASTER, "$[0].href[0]"),
    '@type', JSON_EXTRACT(INV_MASTER, "$[0].\"@type\"[0]"),
    'entityChar', JSON_EXTRACT(INV_MASTER, "$[0].entityChar")
)) AS MASTER FROM PROFILE;

关键说明

  • 对于键名包含@这类特殊字符的JSON字段,在JSON路径表达式里必须用双引号将键名包裹,比如"@type"
  • 由于SQL语句本身用单引号包裹字符串,所以这里需要用转义符\来转义双引号,确保SQL解析正确

另外,也可以使用更简洁的->运算符替代JSON_EXTRACT,写法更直观:

SELECT JSON_ARRAYAGG(JSON_OBJECT (
    'id', INV_MASTER->"$[0].id[0]" ,
    'href', INV_MASTER->"$[0].href[0]",
    '@type', INV_MASTER->"$[0].\"@type\"[0]",
    'entityChar', INV_MASTER->"$[0].entityChar"
)) AS MASTER FROM PROFILE;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:45:24