Entfernen doppelter Datensätze ohne temporäre Tabellen
Wenn Sie mit doppelten Datensätzen in einer MySQL-Tabelle konfrontiert werden, kann es vorkommen, dass sich temporäre Tabellen als unpraktisch erweisen oder unerwünscht. In diesem Artikel werden alternative Lösungen zum Eliminieren von Duplikaten untersucht und gleichzeitig eine einzelne Instanz jedes eindeutigen Datensatzes beibehalten.
Ein Ansatz besteht darin, eindeutige Indizes zu nutzen. Indem Sie einen eindeutigen Index für die Spalten hinzufügen, die Datensätze eindeutig identifizieren (member_id, quiz_num, questions_num, answer_num), verhindern Sie das Einfügen doppelter Zeilen und stellen sicher, dass für jeden Satz eindeutiger Werte nur eine Zeile vorhanden ist.
< pre>ALTER IGNORE TABLE TableA
EINZIGARTIGEN INDEX HINZUFÜGEN (member_id, quiz_num, questions_num, answer_num);
Alternativ können Sie der Tabelle einen Primärschlüssel hinzufügen und eine Abfrage verwenden, um doppelte Datensätze selektiv zu löschen:
DELETE FROM Mitglied <br>WHERE id IN (SELECT *</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> FROM (SELECT id FROM member GROUP BY member_id, quiz_num, question_num, answer_num HAVING (COUNT(*) > 1) ) AS A );
Durch die Verwendung der Bedingung COUNT(*) > identifiziert die Abfrage Zeilen, die in jeder eindeutigen Kombination von mehr als einmal vorkommen member_id, quiz_num, questions_num und answer_num werden dann verwendet, um sie aus dem Mitglied zu finden und zu löschen Tabelle.
Diese Ansätze bieten effiziente und zuverlässige Methoden zum Entfernen doppelter Datensätze, ohne auf temporäre Tabellen angewiesen zu sein, wodurch die Datenintegrität sichergestellt und die Auswirkungen auf die Leistung minimiert werden.
Das obige ist der detaillierte Inhalt vonWie entferne ich doppelte Datensätze in MySQL, ohne temporäre Tabellen zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!