基于id列将MySQL表从垂直转换为水平

基于id列将MySQL表从垂直转换为水平,mysql,Mysql,我有一张像下面这样的桌子 id | main_id | image 1 | 10 | 52343.jpg 2 | 10 | 52344.jpg 3 | 10 | 52345.jpg 4 | 11 | 52346.jpg 5 | 11 | 52347.jpg 6 | 11 | 52348.jpg 7 | 11

我有一张像下面这样的桌子

id | main_id       | image
1  | 10            | 52343.jpg   
2  | 10            | 52344.jpg  
3  | 10            | 52345.jpg 
4  | 11            | 52346.jpg   
5  | 11            | 52347.jpg  
6  | 11            | 52348.jpg 
7  | 11            | 52349.jpg   
8  | 12            | 52350.jpg  
9  | 12            | 52351.jpg 
我想要这样的输出:

id | main_id  | image1    
1  | 10       | 52343.jpg, 52344.jpg, 52345.jpg 
2  | 11       | 52346.jpg, 52347.jpg, 52348.jpg, 52349.jpg 
3  | 12       | 52350.jpg, 52351.jpg 
仅将具有相同主id的所有图像放在一行中

使用组_concat


它的可能副本工作正常,但我注意到“图像”单元格可以容纳的字符数最多。i、 e.如果需要容纳100个jpg文件名,则只能存储有限的固定字符数,其余不显示。有什么想法吗?如何将结果放入多列,即image1、image2、image3。。。。。不在图像列中吗?
select main_id,group_concat(image)
from tablename
group by main_id