MySQL - doppelte Einträge entfernen, aber nur die neueren

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

MySQL - doppelte Einträge entfernen, aber nur die neueren

Beitrag von mgutt »

Hallo,

ich habe mehrere Tabellen verschmolzen und dabei habe ich doppelte Einträge. Nun ist das so, dass ich die neuen Daten jetzt verwenden möchte. Aber nur dann, wenn diese nicht doppelt sind.

Daher möchte ich doppelte Einträge entfernen. Es dürfen aber nur neuere Einträge gelöscht werden (vielleicht an Hand der ID? Die ist auto_increment, also neuere haben eine höhere ID).

EDIT:

Ich bin auf die Abfrage gestoßen:

Code: Alles auswählen

CREATE TEMPORARY TABLE doppel SELECT count( * ) AS counter, max( id ) AS id, email
FROM emails
GROUP BY email
HAVING counter >1;

SELECT * 
FROM doppel 
Ich denke das bringt mich weiter.

Gruß

EDIT2:
Das müsste es dann sein denke ich:

Code: Alles auswählen

CREATE TEMPORARY TABLE doppel SELECT count( * ) AS counter, min( id ) AS id, email
FROM emails
GROUP BY email
HAVING counter >1;

DELETE emails FROM emails, doppel
WHERE emails.email = doppel.email
AND emails.id != doppel.id;
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „Coding & Technik“