如何在MySQL数据库中找到前5个重复条目?

时间:2014-06-18 13:01:08

标签: php mysql sql

我正在尝试在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个结果。我该怎么做呢?

3 个答案:

答案 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