首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多重MYSQL json_arrayagg(s)是否能保持秩序?

多重MYSQL json_arrayagg(s)是否能保持秩序?
EN

Database Administration用户
提问于 2022-11-07 09:32:29
回答 1查看 317关注 0票数 2
代码语言:javascript
复制
select media_id, 
 json_arrayagg(artist_id) as artist_ids, 
 json_arrayagg(role) as role_ids
from x_media__artist xma group by media_id

嗨,伙计们,artist_ids和role_ids是否保持了他们在团队中的秩序?例如,如果(medium_id,artist_id,role_id)具有(1,1,1)和(1,2,2),那么上面的查询总是返回1 1,2或1 2,1,但从不返回1 1,2

嗨,在重新检查MYSQL之后,绝对有一个更好的解决方案:

代码语言:javascript
复制
select media_id, 
 json_arrayagg(json_array(artist_id, role)) as artist_role_ids
from x_media__artist xma group by media_id

但我仍然对答案感到好奇!

EN

回答 1

Database Administration用户

发布于 2022-11-08 04:33:00

就像@Akina建议的那样。我要自行回答这个问题.

下面的代码会!不会!通过@Ergest:https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_亚拉亚格的链接来保证artist_ids和role_ids的相同排列。

代码语言:javascript
复制
select media_id, 
 json_arrayagg(artist_id) as artist_ids, 
 json_arrayagg(role) as role_ids
from x_media__artist xma group by media_id

下面的代码可能会像@Akina所建议的那样正常工作。

代码语言:javascript
复制
select media_id, 
 json_arrayagg(json_array(artist_id, role)) as artist_role_ids
from x_media__artist xma group by media_id
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/319287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档