【问题标题】:Grouping Mysql query contacts table by city按城市分组Mysql查询联系人表
【发布时间】:2012-08-23 15:49:08
【问题描述】:

一个简单的,很长一段时间我不使用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
}

提前致谢

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    使用 GROUP_CONCAT

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-27
        • 2016-09-04
        相关资源
        最近更新 更多