supprimer des doublons
Posté : 05 sept. 2008, 19:43
par Invité
bonjour,
j'ai une table qui contient des entrees doubles, comme suite:
id, nom, prenom, heure
1, max, fax, 2110hrs
2, john, fauder, 2315hrs
3, max, fax, 2110hrs
4, max, fax, 2110hrs,
etc
alors je veux supprimer les doublons qui sont nouvellement cree, dans mon exemple c'est le 3eme et 4eme id, quelle requete puis je utiliser pour faire ca.
merci
Posté : 05 sept. 2008, 20:50
par Invité
ce que j'ai fait, une selection de tous les donnes sauf ceux double, alors maintenant je veux supprimer depuis la requete select les non selectionne, par exemple:
$requete = select count(*) as doublons, nom, prenom, heure from table group by nom, prenom, heure having count(*) > 1
alors je veux integrer une requete delete, autant que supprimer toutes les informations sauf celles selectionnees, j ai pense a:
delete from table except (ma requete select ici)
mais ca me retourne une erreur
Posté : 06 sept. 2008, 13:29
par Invité
cette requete retourne tous les champs que je veux sauvegarder, et le reste je veux les supprimer:
Code : Tout sélectionner
$sqlok = 'SELECT COUNT(*) AS DOUBLES, log_no , id , date , time , state FROM in_out_copy GROUP BY id , date , time , state HAVING COUNT(*) >1 ORDER BY log_no ASC';
et pour supprimer j'ai mis:
Code : Tout sélectionner
$sql = 'DELETE FROM in_out_copy WHERE log_no IS NOT (SELECT COUNT(*) AS DOUBLES, log_no , id , date , time , state FROM in_out_copy GROUP BY id , date , time , state HAVING COUNT(*) >1 ORDER BY log_no ASC)';