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

如何在MariaDB中使用JSON_QUERY访问数组内对象属性的值?

解决MariaDB中JSON字段提取section值返回NULL的问题

嘿,我一眼就看出问题所在啦——你用错JSON函数了!JSON_QUERY是用来提取JSON对象或者数组片段的,而你要获取的section是一个字符串标量值,这就难怪它返回NULL了。下面给你几个靠谱的解决办法:

方法1:用JSON_VALUE精准提取标量值

JSON_VALUE就是专门干这个的——从JSON里揪出字符串、数字这类标量值,语法很简单:

SELECT JSON_VALUE(你的JSON字段名, '$[0][0].section') FROM mytable;

把上面的「你的JSON字段名」换成你实际存数据的字段名就行,执行后会直接返回不带引号的search,完美符合你的需求。

方法2:用JSON_EXTRACT兼容旧版本

如果你的MariaDB版本比较老(比如10.2之前),JSON_VALUE可能用不了,那就换JSON_EXTRACT试试。它能提取标量或者JSON结构,不过返回的结果会带双引号:

SELECT JSON_EXTRACT(你的JSON字段名, '$[0][0].section') FROM mytable;

要是你不想看到引号,再加个TRIM函数处理一下就行:

SELECT TRIM('"' FROM JSON_EXTRACT(你的JSON字段名, '$[0][0].section')) FROM mytable;

额外检查:确保JSON格式没问题

另外,别忘了确认你字段里的JSON格式是正确的,万一有语法错误也会导致提取失败。可以跑这条语句验证:

SELECT JSON_VALID(你的JSON字段名) FROM mytable;

返回1说明格式没问题,返回0的话就得先修复数据里的JSON语法错误咯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:18:56