Php MySql 5.6组然后循环通过每个组

Php MySql 5.6组然后循环通过每个组,php,mysql,foreach,group-by,Php,Mysql,Foreach,Group By,因此,我正在使用一个特殊的代码,我需要按照这个代码进行分组,然后在每个结果组中回显每个项目 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

因此,我正在使用一个特殊的代码,我需要按照这个代码进行分组,然后在每个结果组中回显每个项目

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

如何在不运行多个查询的情况下实现这一点?

既然您将问题标记为PHP,您可以使用PHP来帮助实现这一点


不要使用
分组依据
,只需执行
按城市排序,visaid DESC
,然后在查看结果时使用一个变量跟踪最后一行的城市,当它与当前行的城市不同时,回显城市名称。

已解决

对于任何感兴趣的人,我都设法使用一次重新查询来获得所需的结果

SELECT * FROM `geo` GROUP BY city
然后是第二个问题

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

这就是
groupby
所做的。组中的任何记录都会“折叠”成一个新的单数记录。不能在同一查询中同时获取分组计数和原始未分组记录。对。我最初的方法是获取所需的城市计数,然后对该城市运行二次查询。但是我在寻找一种更简单的方法。从你的回答来看,这样的任务似乎是不可能的。我的回答能解决你的问题吗