如何在MYSQL中显示重复值的所有列

时间:2015-06-17 13:32:41

标签: mysql

我想在MYSQL中显示重复值的所有列。

我根据这篇文章选择MYSQL中的重复值:Finding duplicate values in a SQL table

我的sql语句如下所示:

parse_url

我希望显示数据库中所有重复值的所有列,而不是按列分组。

我试过这个:

    SELECT
        `subject`, `topic`, `sub_topic`, `difficulty`,`question_number`,`question_version`, COUNT(*)
    FROM
        `qz_question`
    GROUP BY
        `topic`, `sub_topic`, `difficulty`,`question_number`,`question_version`
    HAVING 
        COUNT(*) > 1

例如,对于每个唯一行,都有一个副本。它应该同时显示唯一和副本。但是这只显示一个唯一的行。我也想要副本。

1 个答案:

答案 0 :(得分:0)

我认为你正在尝试做这样的事情:

SELECT  q1.*, q2.dups
FROM    qz_question q1
        JOIN ( SELECT   subject ,
                        topic ,
                        sub_topic ,
                        difficulty ,
                        question_number ,
                        question_version ,
                        COUNT(*) AS dups
               FROM     qz_question
               GROUP BY topic ,
                        sub_topic ,
                        difficulty ,
                        question_number ,
                        question_version
               HAVING   COUNT(*) > 1
             ) q2 ON q1.topic = q2.topic
                     AND q1.sub_topic = q2.sub_topic
                     AND q1.difficulty = q2.difficulty
                     AND q1.question_number = q2.question_number
                     AND q1.question_version = q2.question_version