如何将文本结果聚合到一个单一的临时列中



我有一个数据库。从这个数据库中,我查询并收到了结果:

Breed   |   Name
Mastiff |   John
Golden  |   Jojo
Shih Tzu|   Mimi
Poodle  |   John
Labrador|   Jojo
Mastiff |   Jojo

我希望了解如何操作数据,使结果看起来像这样——或者(无论SQL操作过程如何(

Breed   | Names
Mastiff | John, Jojo
Labrador| Jojo
Golden  | Jojo
Shih Tzu| Mimi
Poodle  | Jojo

基本上,品种的所有名字都指向它们。类似COUNT((,但适用于字符串

您可以使用GROUP_CONCT 来完成此操作

SELECT 
Breed, 
GROUP_CONCAT(Name ORDER BY Name SEPARATOR ', ') Names
FROM tbl 
GROUP BY Breed 
ORDER BY Breed;

在MySQL中,可以使用字符串聚合函数group_concat():

select breed, group_concat(name) names
from mytable
group by breed

最新更新