Heim > Datenbank > MySQL-Tutorial > Wie entferne ich doppelte Zeilen basierend auf „subscriberEmail' und behalte dabei die älteste Übermittlung bei?

Wie entferne ich doppelte Zeilen basierend auf „subscriberEmail' und behalte dabei die älteste Übermittlung bei?

Linda Hamilton
Freigeben: 2024-11-03 15:10:30
Original
566 Leute haben es durchsucht

How do I remove duplicate rows based on subscriberEmail while keeping the oldest submission?

Entfernen doppelter Zeilen unter Beibehaltung der ältesten Übermittlungen

Um doppelte Zeilen basierend auf dem Feld „subscriberEmail“ zu entfernen und gleichzeitig die ursprüngliche Übermittlung beizubehalten, führen Sie die folgenden Schritte aus :

<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 verknüpft die Tabelle mithilfe der Join-Klausel mit sich selbst. Dadurch werden zwei Instanzen der Tabelle mit dem Alias ​​„x“ und „z“ erstellt.
  • Die where-Klausel vergleicht die ID-Werte der beiden Instanzen. Zeilen in Instanz „x“ mit einer ID, die größer als die entsprechende Zeile in Instanz „z“ ist, stellen doppelte Übermittlungen dar.
  • Die Löschanweisung identifiziert diese doppelten Zeilen in Instanz „x“ und entfernt sie aus der Tabelle.
  • Das Ergebnis ist eine Tabelle mit eindeutigen Abonnenten-E-Mails, in der für jede E-Mail-Adresse nur die ursprüngliche Einreichung (mit der niedrigsten ID) übrig bleibt.

Zusätzliche Hinweise:

  • Um künftige Duplikate zu verhindern, sollten Sie in Betracht ziehen, einen UNIQUE-Index für die Spalte subscriberEmail zu erstellen.
  • Die obige Abfrage kann durch die Kombination der Join- und Where-Klauseln vereinfacht werden:
<code class="sql">delete x
from myTable x
join myTable z
on x.subscriberEmail = z.subscriberEmail and x.id > z.id;</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie entferne ich doppelte Zeilen basierend auf „subscriberEmail' und behalte dabei die älteste Übermittlung 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