基于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