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