MySQL JSON Path 键为数字的错误

本文介绍在MySQL中如何正确访问带有数字键的JSON字段。通过示例演示了使用JSON_EXTRACT函数时,数字键必须用双引号括起来的正确语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小子在使用mysql的json时,键是数字,按常规方法访问:

SET @j = '{"0": {"a":1, "b":2}, "other": {"c": 3, "d": 4}}';
SELECT JSON_EXTRACT(@j, '$.0.a') AS '$.0.a'

但是报了一个异常:

Invalid JSON path expression. The error is around character position 3.
时间: 0s

查看官方文档,有如下说明:

Names of keys must be double-quoted strings or valid ECMAScript identifiers (see http://www.ecma-international.org/ecma-262/5.1/#sec-7.6). Path expressions, like JSON text, should be encoded using the ascii, utf8, or utf8mb4 character set. Other character encodings are implicitly coerced to utf8mb4.

文档地址:MySQL JSON 官方文档
解决方法:
数字键必须单独使用双引号包围,如下:

SET @j = '{"0": {"a":1, "b":2}, "other": {"c": 3, "d": 4}}';
SELECT JSON_EXTRACT(@j, '$."0".a') AS `$.0.a`;
+-------+
| $.0.a |
+-------+
| 1     |
+-------+
1 row in set (0.00 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值