Heim  >  Artikel  >  Datenbank  >  Wie lösche ich doppelte Zeilen und behalte gleichzeitig die älteste Einreichung bei?

Wie lösche ich doppelte Zeilen und behalte gleichzeitig die älteste Einreichung bei?

Linda Hamilton
Linda HamiltonOriginal
2024-11-01 05:54:27279Durchsuche

 How to Delete Duplicate Rows While Keeping the Oldest Submission?

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!

Stellungnahme:
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