effacer tout sauf les doublons

effacer tout sauf les doublons - SQL/NoSQL - Programmation

Marsh Posté le 21-10-2006 à 21:11:38    

salut à tous
 
J'essaie de faire une requête pour une application php/sql mais là je bloque.
Je voudrais effacer toutes les entrées d'une table dont la valeur d'un champ est unique.
 
par exemple :
 
id   monChamp
1    15
2    18
3    20
4    15
5    20
 
ici, je voudrais par exemple qu'il ne reste que l'entrée qui à l'id 2 (car seul le n°18 n'apparait qu'une fois sur monChamp)
donc DELETE FROM forum_reponses WHERE ???
 
merci d'avance

Reply

Marsh Posté le 21-10-2006 à 21:11:38   

Reply

Marsh Posté le 22-10-2006 à 04:58:32    

ya le keyWord DISTINCT si ca peut t'aider
ou alors faire un algo de la mort en TSQL


---------------
ceci est un bloc de texte
Reply

Marsh Posté le 22-10-2006 à 13:43:18    

DELETE FROM forum_reponses  
WHERE monChamp IN (SELECT monChamp
                               FROM  forum_reponses as t1
                               WHERE 1 < (SELECT count(*)
                                                FROM forum_reponses as t2
                                                WHERE t1.monChamp = t2.monChamp);
 
un truc ainsi

Reply

Marsh Posté le 22-10-2006 à 23:34:26    

ou plus simple :
 
DELETE FROM forum_reponses fr1
WHERE NOT EXISTS (
  SELECT 1 FROM forum_reponses fr2
  WHERE fr2.id <> fr1.id
  AND fr2.monChamp = fr1.monChamp);

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed