1
我的目標是顯示過去一個月中擁有最高記錄數的前五名球員。尋找最活躍的球員(表中符合條件的最高記錄數)
有沒有一種方法只使用單個查詢,還是我需要使用PHP來完成我的目標?下面是我如何已經完成了這個簡化版本(我想這是更多的性能問題,也請忽略笨,它是多餘的。):
$res = [];
$q = $this->db1->query('SELECT authid, name FROM table WHERE date BETWEEN NOW() - INTERVAL 30 DAY AND NOW() ORDER BY date DESC');
foreach ($q->result_array() as $row) {
if (isset($res[$row['authid']])) {
$res[$row['authid']]['records'] += 1;
} else {
$res[$row['authid']] = [
'records' => 1,
'name' => $row['name']
];
}
}
arsort($res);
return array_slice($res, 0, 5);
GROUP BY授權,計數和顯示順序如何? –