查询如下所示:SELECT JSON_ARRAYAGG(JSON_OBJECT('id', id, 'tag', tag)) from all_tags;
会产生如下结果:
[
{
"id": 979,
"tag": "alternative"
},
{
"id": 947,
"tag": "ambient"
}
]
以上这些还可以,但我真正想要的是得到这样一个结果:
[
979:{
"tag": "alternative"
},
947: {
"tag": "ambient"
}
]
只使用mysql就可以做到这一点吗?
我试过SELECT JSON_ARRAYAGG(JSON_OBJECT(id, JSON_OBJECT( 'tag', tag))) from all_tags;
这确实允许我将列嵌套为行id的值,但这实际上没有帮助,因为键仍然嵌套在对象中。
最后我希望在Javacript中使用结果作为一个Map,通过键查找属性。我可以在JS中塑造数据,我只是好奇它是否可以在MySQL中完成
1条答案
按热度按时间5cg8jx4n1#
你所显示的不是有效的JSON,如果你使用方括号
[ ]
,那么它只是一个数组,而不是一个对象,但是如果你使用key: value
,那么它是一个对象,而不是数组。我认为以下几点更接近你的要求: