我们正在使用MySql 5.7.12版本
我正在尝试将多个JSON对象合并为一个JSON对象单个对象,并希望删除整数字段的引号
select JSON_OBJECT(count(1), status) from table_name where status in ('X','Y','Z') group by status;
我得到的结果
+------------------------------+
| JSON_OBJECT(status,count(1)) |
+------------------------------+
| {"X": 6} |
| {"Y": 93} |
| {"Z": 75} |
+------------------------------+
我想要以下结果
{"X":6,"Y":93,"Z":75}
我尝试使用json_merge
函数包装上面的查询,但没有得到预期的结果。
谢谢
答案 0 :(得分:0)
如果您使用的是MySQL版本5.7.22
或更高版本,则有一个名为JSON_OBJECTAGG
的JSON函数应该在这里工作:
SELECT JSON_OBJECTAGG(status, cnt)
FROM
(
SELECT status, COUNT(*) AS cnt
FROM table_name
GROUP BY status
) t;
这假定您要对整个表进行JSON聚合。
答案 1 :(得分:0)
怎么样,它只是对现有查询进行后处理:
Deck#shuffle