Doppelte Zeilen verwalten: Älteste Übermittlungen beibehalten
Doppelte Daten können die Integrität und Benutzerfreundlichkeit jeder Datenbank erheblich beeinträchtigen. In diesem Szenario besteht unser Ziel darin, doppelte Zeilen basierend auf dem Feld subscriberEmail zu eliminieren und nur die ursprüngliche Übermittlung beizubehalten.
Um dies zu erreichen, ohne auf Techniken zum Tabellenaustausch zurückgreifen zu müssen, können wir die folgende SQL-Abfrage verwenden:
delete x from myTable x join myTable z on x.subscriberEmail = z.subscriberEmail where x.id > z.id
Diese Abfrage nutzt die Leistungsfähigkeit des Tabellen-Aliasings. Durch das Erstellen der Aliase x und z für die Tabelle myTable können wir Zeilen innerhalb derselben Tabelle vergleichen. Konkret verbinden wir x und z im Feld subscriberEmail und erstellen so effektiv eine Selbstverknüpfung.
Die where-Klausel führt die entscheidende Filterung durch. Es eliminiert Datensätze in x, bei denen das ID-Feld größer ist als das entsprechende ID-Feld in z. Dadurch wird sichergestellt, dass nur nicht originale (doppelte) Übermittlungen gelöscht werden.
Um die Leistung weiter zu verbessern, sollten Sie die Implementierung eines UNIQUE-Index für die Spalte subscriberEmail in Betracht ziehen. Dadurch wird automatisch verhindert, dass in Zukunft doppelte Einträge in Ihre Tabelle eingefügt werden.
Durch die Implementierung dieser Abfrage können Sie doppelte Zeilen effizient entfernen und so die älteste Übermittlung für jede E-Mail-Adresse beibehalten, ohne dass komplexe Tabellenmanipulationen oder erforderlich sind Verfahren zum Mischen von Daten.
Das obige ist der detaillierte Inhalt vonWie lösche ich doppelte Zeilen und behalte gleichzeitig die älteste Einreichung bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!