2017-12-03 2 views
0

mysql上の重複行をすべて削除してQueryで保持する方法は?mysql上のすべての重複行を削除し、クエリで1つ保持してください

テーブル名は次のとおりです。トランザクション

私の重複行:

reference type 
--------- -------- 
     1   9 
     1   10 
     1   10 
     1   10 
     1   11 
     1   11 

正しい行:

reference type 
--------- -------- 
     1   9 
     1   10 
     1   11 
+0

私は行idを持っていない、私はフィールドの種類とseprate。 – zhorachu

答えて

1
ALTER IGNORE TABLE `transaction` 
ADD UNIQUE INDEX (`col_1`, `col_2`); 

ALTERは:テーブルを変更するために使用されます。

IGNOREIGNOREが使用されている場合、複製された行の最初の行のみが使用されます。残りの行は削除されます。

ADD UNIQUE INDEX:重複を避けるため、現在の列にunique indexesを別途追加します。 Unique indexesは、primary keysのように同じ方法で動作します。 は1つしか持てませんが、unique indexesはカラム数と同じ数にすることができます。この方法で、現在のカラムの重複を避けることができます。

+0

あなたの答えにいくつかの説明を追加してください –

+0

Muhammad Omer:それは基本的に重複を排除して、列にユニークなインデックスを作成します。それはエラーを呼び出すでしょうが、無視はそれを無効にします。基本的に1つのエントリを保存し、それを一意にすることによって残りを無視/削除します。 汚いが非常に効果的です! –

関連する問題