Bonjour,
J'ai un petit soucis pour faire une requête sql performante et rapide sur une table avec environ 60 000 enregistrements.
Voici là structure (simplifiée de la table) et quelques données d'exemple
id, nom, prenom, email, created_at
1 jacques dupont jdup@test.com 2008-12-17 21:04:46
2 pierre martin pmartin@test.com 2008-15-17 21:04:46
3 jacques dupont jdup@test.com 2012-12-17 21:04:46
Je souhaiterais faire une requête qui supprime les doublons en fonction de email et qui garde l'enregistrement le plus récent (ici le created_at, on pourrait également se baser sur l'id).
Le résultat de la requête doit donner ceci :
2 pierre martin pmartin@test.com 2008-15-17 21:04:46
3 jacques dupont jdup@test.com 2012-12-17 21:04:46
J'ai essayer des solution comme
Mais vu le nombre d'enregistrement, il me semble que ce n'est pas la solution la plus rapide et la plus performante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DELETE FROM `newsletters` WHERE (id NOT IN (SELECT max(id) FROM newsletters GROUP BY email))
Merci d'avance
Partager