【发布时间】:2020-11-24 21:46:47
【问题描述】:
我想对 json_arrayagg() 返回的数组进行排序。 我的查询与此类似:-
select A, json_arrayagg(json_obj('X',value1, 'Y',value2)) AS RESULT
FROM (derived table)
GROUP BY A.
我想要的是我希望返回的数组按 value2 排序。 我尝试在末尾添加 order by 子句(例如 order by value2:它不起作用)
已尝试在 json_arrayagg() 中添加 order by ..(如:json_arrayagg(json_obj() order by value2)它不起作用。
尝试使用 group_concat ,但它不可靠,不知道为什么它没有返回正确的数据。已检查限制。
请建议我如何解决这个问题? 谢谢
【问题讨论】:
-
@Gordon Linoff,你能帮帮我吗!
-
。 .不幸的是,MySQL 并没有正式支持该功能——即使在子查询中有
ORDER BY。有一个 hacky 解决方案,但不能保证它有效。 -
@Gordon Linoff,没有捷径可做,所以我尝试将所需派生表中的有序值传递给 JSON_ARRAYAGG。但是,我还是想知道 hacky 解决方案~谢谢 :)
标签: mysql sql json sql-order-by aggregate