2016-03-27 2 views
0

Ich habe Spalt ID, A und B. in Tabelle 1entfernt identischen Datensätze in mySQL

ID = Autowert, Primärschlüssel

A = Fremdschlüssel

B = Fremdschlüssel

Diese Tabelle ist für viele zu viele und wir Spalte ID vorerst ignorieren. Ich muss Duplikate von meinen vielen zu vielen entfernen.

Beispiel:

+----+---+ 
| A | B | 
+----+---+ 
| 1 | 1 | 
| 1 | 2 | 
| 1 | 1 | 
| 1 | 2 | 
| 1 | 3 | 
| 2 | 1 | 
+----+---+ 

Turn it in

+----+---+ 
| A | B | 
+----+---+ 
| 1 | 1 | 
| 1 | 2 | 
| 1 | 3 | 
| 2 | 1 | 
+----+---+ 

diese unnötigen Duplikate zu entfernen. können Sie mir bitte bei der Abfrage von MySQL helfen?

Antwort

0

Für eine Tabelle mit beliebiger Größe ist es oft schneller, die Tabelle abzuschneiden und Datensätze erneut einzufügen, um anschließend eine massive Löschung durchzuführen. Dies gilt insbesondere, wenn die fragliche Tabelle keinen Primärschlüssel hat.

Daher würde ich so etwas wie dies empfehlen:

create table temp_table1 as 
    select distinct a, b 
    from table1; 

truncate table table1; 

insert into table1(a, b) 
    select a, b 
    from table1; 

Natürlich macht eine Kopie table1 vor etwas zu tun - nur für den Fall.