プロが教える店舗&オフィスのセキュリティ対策術

MySQL4.1で既存データに対し複合キーを新しく設定したいのですが、

ALTER TABLE `test` ADD PRIMARY KEY (`a`,`b`)

としても重複データが存在する為、作成できませんでした。

10万件あるテーブルから重複するレコードを手動で削除したいのですが、aとbが重複しているレコードだけ抽出するSQL文はありますでしょうか?

A 回答 (2件)

select * from `test`


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

SELECT * FROM


(SELECT a, b, COUNT(*) AS CNT FROM test GROUP BY a,b)
WHERE CNT > 1

とすれば、重複するキーの値を求められるので、後は、複数のレコードを認識できる項目とあわせて削除すればよいと思います。
    • good
    • 10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A