1

私の質問はSOで行われたと思いますが、答えは見つかりませんでした。

mytable1つの列を持つmysqlテーブルがありますmycolumn

テーブルから重複を削除するためのmysqlクエリとは何ですか?

4

2 に答える 2

2

pkのない1つの列、またはそれらが異なるかどうかを確認するために使用できる別の列のみですか?はいの場合、これは悪い習慣です。このクエリを試すよりも、すべてのレコードに新しい列(数値)とIDを挿入することを検討してください。

delete from table 
where counter > 1 and inner_query.mycolumn = table.mycolumn and inner_query.col_id = table.col_id from 
(select mycolumn, col_id, count (mycolumn) counter  
 from table group by  mycolumn
) inner_query

より、主キーを追加できます

于 2013-01-07T10:57:22.463 に答える
1

トリガーや外部キーがない限り、これを実行する1つの方法があります。電話を使用しているためテストされていませんが、動作するはずです。この後、重複を防ぐためにmycolumnに一意のインデックスを作成することができます。

Create table _mytable
Select distinct mycolumn from mytable;

delete from mytable;

Insert into mytable(mycolumn)
Select mycolumn from _mytable;

Drop table _mytable;
于 2013-01-07T10:59:14.417 に答える