Wenn Ihre MySQL- Tabelle enthält Hunderte oder Tausende von Datensätzen , die Sie nicht wollen , um manuell durch jeden , um zu versuchen , um doppelte Datensätze zu ermitteln suchen. MySQL hat nicht eine einzelne Abfrage , die Sie verwenden , um doppelte Einträge in einer Tabelle zu entfernen können , aber Sie können eine Kombination von Abfragen verwenden , und führen Sie sie zusammen, um Ihre Doppel beseitigen. Selbst wenn Ihre Tabelle einen Primärschlüssel zur eindeutigen Identifizierung Aufzeichnungen , können Sie Duplikate von nicht der Auswahl der Primär-Schlüsselfeld in Ihren Abfragen zu entfernen. . Anweisungen
1
Einloggen, um MySQL-Datenbank und Zugriff auf die Abfrage-Tool
2
Geben Sie die folgende Abfrage:
Anlegen temporärer Tabellen Temp SELECT DISTINCT col1, col2 , col3 FROM tabelle GROUP BY col1, col2 , col3 HAVING COUNT (* )> 1 ;
Diese erstellt eine temporäre Tabelle, die Tabelle nach " Tabellenname " geliefert überprüft und , wenn es findet einen doppelten Datensatz , fügt er , dass in der temporären Tabelle zu duplizieren, aber nur einmal. Zum Beispiel, wenn " Tabellenname " hat drei Einträge , " Jim ", " Bob " und " Bob ", die " temp" -Tabelle wird nur ein Rekord ", Bob . " . Wenn " Spalte1 " wirkt wie ein Primär-Schlüsselfeld in der Tabelle nicht enthalten " col1 " in der Abfrage und wählen Sie einfach die beiden anderen Spalten
3
Geben Sie die folgende Abfrage:
DELETE FROM tabelle WHERE ( col1, col2 , col3 ) IN ( SELECT col1, col2 , col3 FROM temp) ;
Diese Abfrage prüft jeden Datensatz in " Tabellenname " und löscht alle Datensätze, die Duplikate haben einschließlich des Originals . Zum Beispiel , wenn die Tabelle drei Einträge , " Jim ", " Bob " und " Bob", die Abfrage löschen Sie beide "Bob" Aufzeichnungen , so dass nur "Jim" in "Tabellen_Name . " Wieder entfernen Verweise auf " col1 " in der Abfrage , wenn " col1 " ist das primäre Schlüsselfeld
4
Geben Sie die folgende Abfrage: .
INSERT INTO tabelle ( col1, col2 , col3 ) SELECT col1, col2 , col3 FROM temp;
Diese Abfrage im Wesentlichen kopiert alle Datensätze aus der temporären Tabelle und fügt sie wieder in "Tabellen_Name . " Wenn an dieser Stelle " Tabellenname " nur "Jim" und "temp" nur " Bob ", nach der Abfrage wird " Tabellenname " haben "Jim" und "Bob" Aufzeichnungen während die temporäre Tabelle gelöscht wird . Denken Sie daran, " Spalte1 " Verweise zu entfernen , wenn es ein Primärschlüssel ist .
5
Execute alle Abfragen.