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

如何用MySQL生成以ID为键的目标JSON查询结果?

解决方案:用MySQL生成键值对结构的JSON对象

首先明确:你想要的[979:{"tag": "alternative"},947: {"tag": "ambient"}]不属于合法JSON格式——JSON数组只能存放一系列值,不能包含键值对。如果要用于JavaScript的键值查找,正确的格式应该是JSON对象(用大括号包裹),示例如下:

{"979": {"tag": "alternative"}, "947": {"tag": "ambient"}}

这种结构可以直接在JS里转换成Object或Map实现快速查找。

MySQL完全能实现这个需求,用JSON_OBJECTAGG()函数即可——它专门用于聚合生成键值对形式的JSON对象,替代你之前使用的JSON_ARRAYAGG()。

具体查询语句:

SELECT JSON_OBJECTAGG(id, JSON_OBJECT('tag', tag)) FROM all_tags;

这条语句会将每条记录的id作为键,把对应的tag包装成对象作为值,最终生成上述合法的JSON对象。

你之前用JSON_ARRAYAGG()的尝试之所以达不到效果,是因为它的作用是生成数组,无论如何嵌套,结果都是数组中的对象,无法直接实现键值映射。而JSON_OBJECTAGG()恰好匹配你的需求——将ID作为唯一键聚合所有标签数据。

拿到结果后,在JavaScript里可以这样使用:

// 假设mysqlResult是从数据库获取的JSON字符串
const tagData = JSON.parse(mysqlResult);
// 转换成Map用于查找
const tagMap = new Map(Object.entries(tagData));
// 或者直接用对象查找
console.log(tagData['979'].tag); // 输出"alternative"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:25:52