Heim > Datenbank > MySQL-Tutorial > Wie entferne ich doppelte Zeilen aus MySQL-Tabellen, ohne temporäre Tabellen zu verwenden?

Wie entferne ich doppelte Zeilen aus MySQL-Tabellen, ohne temporäre Tabellen zu verwenden?

Susan Sarandon
Freigeben: 2024-12-26 12:26:10
Original
217 Leute haben es durchsucht

How to Remove Duplicate Rows from MySQL Tables Without Using Temporary Tables?

Löschen von Duplikaten aus MySQL-Tabellen ohne temporäre Tabellen

MySQL-Tabellen enthalten oft doppelte Datensätze, die die Datenbank überladen und die Datenintegrität gefährden können. Das Löschen dieser Duplikate ist für die Aufrechterhaltung der Datengenauigkeit und die Verbesserung der Abfrageleistung von entscheidender Bedeutung. In diesem Artikel wird ein effizienter Ansatz zum Entfernen doppelter Datensätze ohne Verwendung temporärer Tabellen untersucht.

Eindeutige Indexerstellung

Die einfachste Methode besteht darin, einen eindeutigen Index für die Spalten zu erstellen, die die Eindeutigkeit in der Tabelle definieren. Für die TableA-Tabelle stellt der folgende Index sicher, dass die Kombination aus Mitglieds-ID, Quiz-Nummer, Frage-Nummer und Antwort-Nummer eindeutig ist:

ALTER IGNORE TABLE `TableA` ADD UNIQUE INDEX (`member_id`, `quiz_num`, `question_num`, `answer_num`);
Nach dem Login kopieren

Sobald der Index erstellt ist, behält MySQL automatisch seine Integrität bei und verhindert so die Entstehung doppelter Datensätze eingefügt.

Primärschlüssel löschen

Alternativ kann auch das Hinzufügen eines Primärschlüssels zur Tabelle erfolgen verhindert doppelte Einfügungen. Die folgende Abfrage löscht doppelte Datensätze basierend auf dem Primärschlüssel:

DELETE FROM member
WHERE id IN (
    SELECT *
    FROM (
        SELECT id
        FROM member
        GROUP BY member_id, quiz_num, question_num, answer_num
        HAVING (COUNT(*) > 1)
    ) AS A
);
Nach dem Login kopieren

Die DELETE-Anweisung entfernt Datensätze basierend auf der ID-Spalte und stellt so sicher, dass nur ein Datensatz mit derselben eindeutigen Spaltenkombination übrig bleibt.

Das obige ist der detaillierte Inhalt vonWie entferne ich doppelte Zeilen aus MySQL-Tabellen, ohne temporäre Tabellen zu verwenden?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage