So löschen Sie doppelte Zeilen in einer MySQL-Tabelle
Bei der Datenbankverwaltung ist die Beseitigung doppelter Daten eine häufige Aufgabe. In MySQL kann dies mit dem DELETE-Befehl erreicht werden.
Das Folgende ist eine Beispieltabelle:
<code class="language-sql">CREATE TABLE names ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, PRIMARY KEY (id) );</code>
Angenommen, die Tabelle enthält Duplikate:
<code class="language-sql">INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('yahoo'); INSERT INTO names (name) VALUES ('msn'); INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('google'); INSERT INTO names (name) VALUES ('yahoo'); SELECT * FROM names;</code>
Um alle doppelten Zeilen zu entfernen (behalten Sie die Zeile mit der kleinsten ID), verwenden Sie die folgende Abfrage:
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id > n2.id AND n1.name = n2.name;</code>
Alternativ können Sie die folgende Abfrage verwenden, um die Zeile mit der größten ID beizubehalten:
<code class="language-sql">DELETE n1 FROM names n1, names n2 WHERE n1.id < n2.id AND n1.name = n2.name;</code>
Warnung: Stellen Sie sicher, dass Sie Ihre Tabellen sichern, bevor Sie Löschabfragen ausführen, um versehentlichen Datenverlust zu vermeiden.
Für große Tabellen wird empfohlen, die schnelleren INSERT- und DISTINCT-Methoden zu verwenden:
„sql ERSTELLEN SIE EINE TEMPORÄRE TABELLE temp_names SELECT DISTINCT ID, Name VON Namen; TRUNCATE TABLE-Namen; INSERT INTO Namen (ID, Name) SELECT ID, Name FROM temp_names; DROP TABLE temp_names; „Das obige ist der detaillierte Inhalt vonWie lösche ich effizient doppelte Zeilen in einer MySQL-Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!