如何使用GROUP BY显示多个对象,而不是每个分组只显示一个对象?

时间:2015-06-02 14:31:55

标签: mysql sql

我有一个users名称和时区表。我想显示每个时区的所有名称。当我尝试:

SELECT timezone, name FROM users GROUP BY timezone;

每个时区只给我一个名字。我想要一个每个时区的所有名字的列表。我该如何构建这种类型的查询?

2 个答案:

答案 0 :(得分:1)

要获取您可以使用group_concat的所有名称,请确保group_concat_max_len设置正确 https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

select
timezone,
group_concat(name) as names  
FROM users GROUP BY timezone;

答案 1 :(得分:0)

您可以使用MySQL GROUP_CONCAT()函数,它将为您提供逗号分隔的所有名称列表。试试这个:

SELECT timezone, GROUP_CONCAT(name)
FROM users
GROUP BY timezone;

这是函数的reference