Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie eliminiere ich doppelte Zeilen und behalte gleichzeitig den ursprünglichen Eintrag in einer Tabelle bei?

Barbara Streisand
Freigeben: 2024-10-31 19:12:29
Original
719 Leute haben es durchsucht

How to Eliminate Duplicate Rows While Preserving the Original Entry in a Table?

Doppelte Zeilen eliminieren und gleichzeitig die Originalität bewahren

Frage:

Die Aufrechterhaltung der Datenintegrität ist von entscheidender Bedeutung. und häufig können doppelte Einträge aus Benutzereingaben entstehen. In einem Szenario, in dem doppelte Einträge basierend auf einem bestimmten Feld vorhanden sind, z. B. „subscriberEmail“, besteht das Ziel darin, diese Duplikate zu beseitigen und nur den ursprünglichen Eintrag beizubehalten. Wie kann dies effizient erreicht werden, ohne auf Tabellenaustausch zurückgreifen zu müssen?

Antwort:

Da die Tabelle eindeutige Bezeichner für jede Zeile enthält, kann ein einfacher Ansatz gewählt werden:

<code class="sql">delete x
from myTable x
join myTable z on x.subscriberEmail = z.subscriberEmail
where x.id > z.id</code>
Nach dem Login kopieren

Erklärung:

Diese Abfrage nutzt die Existenz eindeutiger IDs, um die Originaldatensätze zu identifizieren. Indem die Tabelle mithilfe des Felds „subscriberEmail“ und der Filterung anhand der IDs mit sich selbst verknüpft wird, markiert sie doppelte Datensätze effektiv als solche mit höheren IDs als das Original. Diese markierten Duplikate werden dann gelöscht.

Um die Abfrageleistung weiter zu verbessern, sollten Sie die Verwendung eines Index für die Spalte subscriberEmail in Betracht ziehen. Dies gewährleistet einen schnellen Abruf von Datensätzen basierend auf diesem Feld und macht die Abfrage effizienter. Durch die Deklaration der subscriberEmail-Spalte als EINZIGARTIGE indizierte Spalte kann auch verhindert werden, dass in Zukunft doppelte Einträge eingefügt werden.

Das obige ist der detaillierte Inhalt vonWie eliminiere ich doppelte Zeilen und behalte gleichzeitig den ursprünglichen Eintrag in einer Tabelle bei?. 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