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