2012-10-02 7 views
24

可能性の重複:私は多くの行を持っているMySQLデータベースで
Mysql Duplicate Rows (Duplicate detected using 2 columns)MySQLの複数のフィールドに基づいて重複行を検索するにはどうすればよいですか?

。たとえば:

id | title | time | domain 
32 title1 12:30 domain1.com 
33 title1 12:30 domain2.com 
34 title2 14:20 domain1.com 
35 title3 14:30 domain2.com 
36 title1 12:30 domain55.com 

どのように私はのみタイトルと時間に基づいて、データベースから行を選択できるのですか?重複するドメインまたはIDは問題ではなく、他の2つのフィールドのみが対象です。

同じタイトルと同じ時刻を持つため、32,33,36の行を取得できます。

私はタイトルや時間を入れたくないので、これらの2つのフィールドに「重複した」一致が2つか50であるかどうかにかかわらず、すべてのフィールドを返すようにしたいと思います。いくつかの重複を通過して編集または削除することができます。ここで

+0

あなたは答えを受け入れてもらえ何をしたいのですか? – kasi

答えて

28
select distinct id, title, time 
    from table t1 
where exists (select * 
       from table t2 
       where t2.id <> t1.id 
        and t2.title = t1.title 
        and t2.time = t1.time 
       ) 
+3

これは実際には、[その他の回答](http://stackoverflow.com/a/12691631/283991)が1つの行を返す一方、3つの重複した行を返す質問に答えます。 – mwotton

58

は、あなたがそれを好きなら

SELECT title, time 
    FROM table 
GROUP BY title, time 
    HAVING count(*) > 1 
関連する問題