• ベストアンサー

2つの項目が重複するレコードを抽出する方法はありますか?

MySQL4.1で既存データに対し複合キーを新しく設定したいのですが、 ALTER TABLE `test` ADD PRIMARY KEY (`a`,`b`) としても重複データが存在する為、作成できませんでした。 10万件あるテーブルから重複するレコードを手動で削除したいのですが、aとbが重複しているレコードだけ抽出するSQL文はありますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

select * from `test` where (a,b) in( select a,b from `test` group by a,b having count(*)>1)

その他の回答 (1)

  • nnfuji
  • ベストアンサー率28% (200/701)
回答No.1

SELECT * FROM (SELECT a, b, COUNT(*) AS CNT FROM test GROUP BY a,b) WHERE CNT > 1 とすれば、重複するキーの値を求められるので、後は、複数のレコードを認識できる項目とあわせて削除すればよいと思います。

関連するQ&A