0

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

城市 1
--------
联系人1
联系人2
联系方式3

城市 2
--------
联系方式4
联系方式7
联系人10

城市 3
--------
联系人5
联系人6
联系人8

我不想使用任何额外的 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
}

提前致谢

4

2 回答 2

1

使用 GROUP_CONCAT

SELECT  city, GROUP_CONCAT(name)
FROM    contacts
GROUP BY    city
于 2012-08-23T07:49:08.677 回答
0

您只需要GROUP BY城市列并使用GROUP_CONCAT函数SELECT来获取每个城市的名称的逗号分隔列表。

SELECT city, GROUP_CONCAT(name) AS name
FROM contacts 
GROUP BY city;
于 2012-08-23T07:48:33.460 回答