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之后,绝对有一个更好的解决方案:
select media_id,
json_arrayagg(json_array(artist_id, role)) as artist_role_ids
from x_media__artist xma group by media_id但我仍然对答案感到好奇!
发布于 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的相同排列。
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所建议的那样正常工作。
select media_id,
json_arrayagg(json_array(artist_id, role)) as artist_role_ids
from x_media__artist xma group by media_idhttps://dba.stackexchange.com/questions/319287
复制相似问题