按城市分组Mysql查询联系人

时间:2012-08-23 07:46:19

标签: mysql sql

一个简单的,很长一段时间我不使用mysql查询所以也许有人可以帮我解决这个nooby问题,我有一个联系人表,id,名称和城市..我想得到列出的所有联系人如下。

city 1
--------
contact1
contact2
contact3

city 2
--------
contact4
contact7
contact10

city 3
--------
contact5
contact6
contact8

我不想使用任何额外的PHP编码,只需获得像这样的SQL结果

city 1 
   -> contact 1
   -> contact 2
   -> contact 3
city 2 
   -> contact 4
   -> contact 7
   -> contact 10

...

然后将结果填入php对象,并执行以下操作:

foreach (cities as city)
{ 
   // code here
}

提前致谢

2 个答案:

答案 0 :(得分:1)

使用GROUP_CONCAT

SELECT  city, GROUP_CONCAT(name)
FROM    contacts
GROUP BY    city

答案 1 :(得分:0)

您只需要GROUP BY城市列,并使用SELECT中的GROUP_CONCAT功能获取每个城市的逗号分隔名称列表。

SELECT city, GROUP_CONCAT(name) AS name
FROM contacts 
GROUP BY city;