Salut la compagnie !
Voilà le topo : j'ai une base de donnée, j'essaie de la dédoublonner avec comme critère de comparaison le pseudo.
Jusque là pas de souci :
Où code est une courte chaine de caractère unique, une sorte de clef primaire mais pas auto incrémentée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT T2.code, T2.pseudo FROM g_users_temp T2, g_users_temp T WHERE T.code <> T2.code AND T.pseudo = T2.pseudo
Ca fait le job, j'ai bien toutes les entrées de ma base en doublon qui sont retournées.
Maintenant de la liste qui apparait je ne souhaite conserver qu'une seule valeur (la plus récente) que j'identifie par son champs "creation" qui est une valeur "datetime".
Je vous cache pas que j'ai lu la doc concernant la valeur ANY et qu'il y a un truc que j'ai pas saisi !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DELETE FROM g_users_temp T WHERE T.creation > ANY (SELECT T2.code, T2.pseudo, T2.creation FROM g_users_temp T2, g_users_temp T WHERE T.code <> T2.code AND T.pseudo = T2.pseudo)
D'avance merci pour vos précieuses lumières
Partager