我正在尝试在SQL表中找到最多的重复行数。我能够得到计数,但数字会不时地动态变化。那么我需要将计数添加到表中,然后找到计数列的最大值吗?或者我只需要找到计数列的最大值而不将其添加到表中?我希望这些问题有意义。这是我到目前为止所拥有的。
$countQuery = "SELECT breakers, COUNT(breakers) AS num FROM $tblEmerg GROUP BY breakers";
$count = mysqli_query($db, $countQuery) or die(mysqli_error($db));
while($row = mysqli_fetch_assoc($count)){
echo "<p>" .$row['breakers'] ." - " .$row['num'] ."</p>";
}
这给了我输出:
APU [1] - 3
APU [5] - 1
APU [7] - 1
AVIONICS[1] - 2
FC[5] - 1
FC[6] - 1
FC[7] - 1
FC[9] - 1
这就是我想要的,但正如我所提到的,'num'将动态变化,我想返回前5个结果。我该怎么做呢?
答案 0 :(得分:1)
试试这个:
SELECT breakers, COUNT(breakers) AS num
FROM $tblEmerg
GROUP BY breakers having num > 1 order by count(breakers) desc limit 5
答案 1 :(得分:0)
您只需要在查询中添加ORDER BY COUNT(breakers) DESC LIMIT 5
。
答案 2 :(得分:0)
我认为这会给你所需的结果。
SELECT breakers, COUNT(breakers) AS num FROM $tblEmerg GROUP BY breakers ORDER BY COUNT(breakers) DESC LIMIT 5