Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie lösche ich doppelte Zeilen aus einer MySQL-Tabelle?

DDD
Freigeben: 2024-11-03 04:59:02
Original
949 Leute haben es durchsucht

How to Delete Duplicate Rows from a MySQL Table?

Doppelte Zeilen aus einer MySQL-Tabelle löschen

Bei der Arbeit mit großen Datensätzen ist es wichtig, doppelte Datensätze zu identifizieren und zu entfernen. Dieser Leitfaden bietet eine umfassende Lösung zum Löschen doppelter Zeilen aus einer MySQL-Tabelle mit dem Namen „employee“, die aus drei Feldern besteht: empid, empname und empssn.

Identifizieren doppelter Datensätze

Um doppelte Datensätze zu identifizieren, können Sie die folgende Abfrage verwenden:

SELECT COUNT(empssn), empssn
FROM employee 
GROUP BY empssn
HAVING COUNT(empssn) > 1
Nach dem Login kopieren

Diese Abfrage gibt die Anzahl der Vorkommen für jeden eindeutigen empssn zurück. Die HAVING-Klausel filtert Zeilen mit einer Anzahl größer als 1 heraus und identifiziert so effektiv doppelte empssn-Werte.

Löschen doppelter Datensätze

Um die doppelten Datensätze zu löschen, können wir die verwenden Folgende Abfrage:

DELETE FROM employee 
WHERE (empid, empssn) NOT IN (
    SELECT MIN(empid), empssn 
    FROM employee 
    GROUP BY empssn
);
Nach dem Login kopieren

MySQL löst jedoch einen Fehler aus, wenn die Zieltabelle („Mitarbeiter“) sowohl in der DELETE- als auch in der FROM-Klausel der Unterabfrage angegeben ist. Um dies zu umgehen, können wir die Unterabfrage wie folgt in eine abgeleitete Tabelle einbinden:

DELETE FROM employee 
WHERE (empid, empssn) NOT IN (
    SELECT empid, empssn 
    FROM (
        SELECT MIN(empid) AS empid, empssn 
        FROM employee 
        GROUP BY empssn
    ) X
);
Nach dem Login kopieren

Diese modifizierte Abfrage löscht effektiv doppelte Datensätze und vermeidet gleichzeitig den Zieltabellenkonflikt. Infolgedessen behält die Datenbank nur die Datensätze mit der minimalen empid für jeden eindeutigen empssn-Wert bei.

Das obige ist der detaillierte Inhalt vonWie lösche ich doppelte Zeilen aus einer MySQL-Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage