Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie entferne ich doppelte Zeilen in einer Tabelle und behalte dabei den ältesten Eintrag bei?

Linda Hamilton
Freigeben: 2024-10-29 09:21:29
Original
151 Leute haben es durchsucht

How to Remove Duplicate Rows in a Table While Keeping the Oldest Entry?

Entfernen doppelter Zeilen unter Beibehaltung der ältesten Einträge

In Ihrer Tabelle mit Benutzerübermittlungsdaten haben sich basierend auf dem Feld subscriberEmail doppelte Einträge angesammelt. Um die Datenintegrität sicherzustellen, möchten Sie diese doppelten Zeilen entfernen und gleichzeitig die ursprünglichen Übermittlungen beibehalten.

Lösung:

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

  • Selbstverknüpfung: Die Abfrage führt eine Selbstverknüpfung für die Tabelle „myTable“ durch und erstellt zwei separate Instanzen der Tabelle mit dem Alias ​​„x“ und „z“.
  • Vergleichsbedingung: Der Join gleicht Zeilen von „x“ und „z“ basierend auf der Spalte „subscriberEmail“ ab und vergleicht effektiv jede Zeile mit allen anderen Zeilen.
  • Filterung : Die where-Klausel wählt Zeilen aus „x“ aus, in denen der ID-Spaltenwert größer ist als der ID-Wert in der entsprechenden Zeile in „z“. Dadurch werden doppelte Zeilen mit höheren ID-Werten identifiziert.
  • Löschen: Die Löschanweisung entfernt die in „x“ identifizierten doppelten Zeilen, sodass nur die ursprünglichen Übermittlungen übrig bleiben.

Zusätzliche Überlegungen:

Um zukünftige doppelte Einfügungen zu verhindern, sollten Sie die Erstellung eines UNIQUE-Index für die Spalte subscriberEmail in Betracht ziehen. Dadurch wird die Eindeutigkeit der E-Mail-Adressen in der Tabelle erzwungen.

Das obige ist der detaillierte Inhalt vonWie entferne ich doppelte Zeilen in einer Tabelle und behalte dabei den ältesten Eintrag 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!