MySql 5.6 Group然后循环每个组

时间:2016-01-14 21:24:15

标签: php mysql foreach group-by

所以我正在处理一个需要GROUP BY this 的特殊代码,然后回显每个结果组中的每个项目。

SELECT * FROM `geo` GROUP BY city ORDER BY visaid DESC"

从这里,我迷路了。尝试使用:

SELECT name, COUNT(city) FROM `geo` GROUP BY city ORDER BY visaid DESC

它不会返回每个,而是返回每个组的计数总数。 但是,需要遍历群集结果并显示每个组的每一行。例如:

NEW YORK
    Brad, visaid, expired
    Gina, visaid, 1 month
    Sam, visaid, 1 week

LONDON
    Edward
    Patricia

如果不运行多个查询,如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

由于您将问题标记为PHP,因此可以使用PHP来帮助解决此问题。

不要使用GROUP BY,只需执行ORDER BY city, visaid DESC,然后在查看结果时,会有一个跟踪最后一行城市的变量,当它与当前行的城市不同时,会回显城市名称。

答案 1 :(得分:1)

<强>解决

对于任何感兴趣的人,我设法使用单个重新查询来实现所需的结果。

SELECT * FROM `geo` GROUP BY city

然后是第二个查询

SELECT * FROM `geo` WHERE city='' ORDER BY visaid DESC