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

如何在MySQL中提取数字键嵌套JSON字段的值?

解决MySQL JSON字段纯数字键的提取问题

这个问题出在MySQL的JSON路径语法规则上——纯数字类型的对象键必须用双引号包裹,不然解析器会把它误判为数组索引,进而抛出语法错误。

正确的查询写法

你可以通过两种方式修正查询:

  1. 使用->运算符时,给数字键加上双引号(注意整个路径要用单引号包裹,避免符号冲突):
    select sent->'$.data."12"' from mytable;
    
  2. 或者使用JSON_EXTRACT()函数,逻辑和上面一致:
    select JSON_EXTRACT(sent, '$.data."12"') from mytable;
    

额外小技巧:获取无引号的结果

如果希望直接得到不带JSON字符串引号的纯文本值,可以用->>运算符(这是JSON_UNQUOTE(JSON_EXTRACT(...))的简写形式):

select sent->>'$.data."12"' from mytable;

这样就能顺利提取data对象下键为12对应的值了,之前的报错就是因为没给数字键加双引号,导致JSON路径解析失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:55:29