2012-08-23 43 views
0

很简单,它很长一段时间我不使用mysql查询,所以也许有人可以帮助我与这个nooby问题,我有联系人表,ID,名称和城市..我想要获得如下列出的所有联系人。按城市分组的Mysql查询联系人表

 
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 
} 

在此先感谢

回答

1

使用GROUP_CONCAT

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

是的,这就是我一直在寻找!谢了哥们 – spacebiker

0

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

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

NOP,不做到这一点..我已经尝试过,一个 – spacebiker