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

MariaDB中JSON_QUERY查询JSON字段返回NULL,求问题原因

MariaDB中JSON_QUERY返回NULL的原因及解决方法

你混淆了JSON_VALUE和JSON_QUERY的适用场景,这是导致结果不符合预期的核心原因:

两个函数的核心区别

  • JSON_VALUE:专门用于从JSON文档中提取标量值(字符串、数字、布尔值、null),返回对应SQL类型的数据(比如字符串类型的1,不带JSON引号)。
  • JSON_QUERY:仅用于提取JSON对象或数组这类复合JSON结构,返回JSON格式的字符串。如果目标路径指向的是标量值,它会直接返回NULL——这就是你看到的结果。

解决方法

场景1:获取SQL类型的标量值

继续使用JSON_VALUE即可,这也是最常用的场景:

SELECT JSON_VALUE(j, '$.a') AS a FROM t;

执行结果:

+------+
| a    |
+------+
| 1    |
| 2    |
+------+

场景2:获取带JSON引号的字符串(匹配你的预期结果)

如果需要返回带双引号的JSON格式字符串,可以给JSON_QUERY添加WITH WRAPPER修饰符,它会把标量值包装成合法的JSON字符串返回:

SELECT JSON_QUERY(j, '$.a' WITH WRAPPER) AS a FROM t;

执行结果:

+------+
| a    |
+------+
| "1"  |
| "2"  |
+------+

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:33:15