在SQL中将多个行合并为逗号分隔的列表

3

我希望你可以帮忙翻译关于IT技术的内容。需要翻译的内容是有关MySQL表StudentName(id,name)的,如下所示:

id | name  
++++++++  
1 | alex    
1 | adam    
1 | adnan       
2 | ben   
2 | bush           
3 | cris  
4 | daisi   
4 | diana     

我希望创建一个新的表格,就像这样:

id | name   
+++++++++++    
1 | alex, adam, adnan    
2 | ben, bush        
3 | cris     
4 | daisi, diana   

有没有一种方法可以实现这个?

首先,不,你不会这样做。以那种方式存储数据非常愚蠢。其次,如果它们是不同的值,那么为什么要共享一个ID呢? - Zane
1个回答

21

group_concat函数就是您要查找的内容:

SELECT   id, GROUP_CONCAT(name ORDER BY name ASC SEPARATOR ', ')
FROM     my_table
GROUP BY id

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接