我正在尝试编写一个SQL查询,以便在最后一分钟选择我网站上的前10个趋势页面。我的表名为trending
。每次用户访问页面时,都会根据该访问的时间将记录输入该表。像这样:
$time = time() - 3600;
$mysqli->query("SELECT COUNT(`id`) FROM `trending` WHERE `time` > '$time'");
如何获得10个不同页面的前10条记录?像MAX()
之类的东西我也希望获得与页面相关的数据,例如名称。
答案 0 :(得分:2)
按ID&组分组然后按计数排序。
$mysqli->query("SELECT id, COUNT(`id`) as cnt
FROM `trending` WHERE `time` > '$time'
group by id
order by cnt desc limit 10");
答案 1 :(得分:0)
$time = time() - 3600;
$mysqli->query("SELECT id FROM 'trending' WHERE 'time' > '".$time."' LIMIT 1,10");