以下数据在MySql表中。mysql查询,我怎样才能得到前5名下载与GROUP_CONCAT
brand_id|image_id|downloads
--------|--------|---------
8 |9 |8
35 |2829 |4
28 |2960 |3
28 |2961 |3
28 |3041 |3
35 |2831 |3
28 |2965 |3
35 |2832 |3
28 |2959 |2
28 |2976 |2
35 |2894 |2
我怎样才能找到前5名的图像与GROUP_CONCAT
功能在每个品牌 ,我想对以下返回
brand_id|image_ids
--------|--------------------------
8 |9
35 |2829,2831,2832,2894
28 |2960,2961,3041,2965,2959
下面的查询提供了预期的结果
SELECT brand_id, SUBSTRING_INDEX(GROUP_CONCAT(image_id SEPARATOR ','),',',5) AS image_ids
FROM Table1
GROUP BY brand_id
我有大量的数据约2MILION记录在表和brand_id,image_id都重复与每个用户下载,所以当我运行查询我得到foll由于错误
MySql Error: %d line(s) were cut by GROUP_CONCAT()
我觉得GROUP_CONCAT超出范围, 可以请你提供的解决方案,所以我有只获取每个品牌前五名下载所以不需要SUBSTRING_INDEX功能。
谢谢
为什么要使用GROUP_CONCAT? – Strawberry
我想要排名前5的图像ids逗号分开与每个品牌,有没有什么办法请给我 – Girish
如果第五位的图像与另一个图像绑在一起怎么办? – Strawberry