Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1376 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Delete doublon

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Delete doublon

n°2255479
sinail
Posté le 11-04-2015 à 16:45:56  profilanswer
 

Bonjour,
 
Je recherche a supprimer les doublon dans une base sql.
 
Pour trouver les doublon j'ai utiliser la requete suivante :  
 
SELECT   COUNT(*) AS nbr_doublon, link, username, password
FROM     Passwords
GROUP BY link, username, password
HAVING   COUNT(*) > 1
 
Celle ci fonctionne bien
 
Par contre je cherche a supprimer les doublon avec la requete :  
DELETE FROM Passwords
        SELECT MIN(id) as id, link, username, password
        FROM Passwords
        GROUP BY link, username, password
 
Mais la j'ai une erreur  :  
 
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT MIN(id) as id, link, username, password FROM Passwords ' at line 2
 
Si quelqu'un peut m'aidé sa serait sympa.
 
Merci d'avance

mood
Publicité
Posté le 11-04-2015 à 16:45:56  profilanswer
 

n°2255544
lasnoufle
La seule et unique!
Posté le 13-04-2015 à 05:16:06  profilanswer
 

http://lmgtfy.com/?q=sql+delete


---------------
C'était vraiment très intéressant.
n°2255790
sinail
Posté le 14-04-2015 à 23:20:39  profilanswer
 


 
Mecri j'ai deja regarder mais impossible de faire fonctionner le requete

n°2255857
lasnoufle
La seule et unique!
Posté le 15-04-2015 à 21:34:57  profilanswer
 

Ben forcement, puisqu'il y a une erreur de syntaxe, comme l'indique le message d'erreur que tu recois.
Erreur de syntaxe qui saute aux yeux des que tu regardes n'importe quelle doc sur les requetes DELETE de SQL.
 
Bon comme c'est tellement basique comme truc et t'as pas l'air de vouloir faire le moindre effort, voila la reponse, en gros:

DELETE FROM Passwords
WHERE id IN (
  SELECT MIN(id)
  FROM Passwords  
  GROUP BY link, username, password)


 
J'espere que tu ne fais pas d'info dans la vie, sinon reorientes toi vite (pour ton bien).


---------------
C'était vraiment très intéressant.
n°2255861
flo850
moi je
Posté le 15-04-2015 à 21:58:44  profilanswer
 

Ce qui est bien quand on est hautain, c'est que la moindre erreur se voit
 
La tu efface le plus petit, même pour les lignes qui ne sont pas en double.
Au passage ce type de requete ne traitera pas le cas ou il y a des triplets ou plus


---------------

n°2255863
flo850
moi je
Posté le 15-04-2015 à 22:02:15  profilanswer
 

Moi je ferai  
 
DELETE FROM Passwords  
WHERE id Not IN (  
  SELECT MIN(id)  
  FROM Passwords  
  GROUP BY link, username, password)
 
 
Not in au lieu de in
 
Qui efface tout ce qui n'est pas un min , donc les seconds, troisiemes et plus
 
Est ce que tu veux garder un exemplaire des doublons ?


---------------

n°2255865
sinail
Posté le 15-04-2015 à 22:36:49  profilanswer
 

flo850 a écrit :

Moi je ferai  
 
DELETE FROM Passwords  
WHERE id Not IN (  
  SELECT MIN(id)  
  FROM Passwords  
  GROUP BY link, username, password)
 
 
Not in au lieu de in
 
Qui efface tout ce qui n'est pas un min , donc les seconds, troisiemes et plus
 
Est ce que tu veux garder un exemplaire des doublons ?


 
Merci pour ton aide oui je souhaiterai gardé un exemplaire des doublon  

n°2255866
lasnoufle
La seule et unique!
Posté le 15-04-2015 à 22:37:48  profilanswer
 

flo850 a écrit :

Ce qui est bien quand on est hautain, c'est que la moindre erreur se voit


Je vois pas trop ou je suis hautain mais bon.
Je lui file le lien vers la doc, il n'y "arrive" toujours pas, je lui explique en deux phrases le raisonnement a suivre pour trouver d'ou ca vient (et c'est dur de faire deux phrases la-dessus deja tellement c'est simple), propose meme un truc (certes faux) ainsi qu'un conseil fort judicieux pour son propre bien-etre.
Faut pas voir le mal partout hein.


---------------
C'était vraiment très intéressant.
n°2255868
sinail
Posté le 16-04-2015 à 00:51:41  profilanswer
 

lasnoufle a écrit :

Ben forcement, puisqu'il y a une erreur de syntaxe, comme l'indique le message d'erreur que tu recois.
Erreur de syntaxe qui saute aux yeux des que tu regardes n'importe quelle doc sur les requetes DELETE de SQL.
 
Bon comme c'est tellement basique comme truc et t'as pas l'air de vouloir faire le moindre effort, voila la reponse, en gros:

DELETE FROM Passwords
WHERE id IN (
  SELECT MIN(id)
  FROM Passwords  
  GROUP BY link, username, password)


 
J'espere que tu ne fais pas d'info dans la vie, sinon reorientes toi vite (pour ton bien).


 
C'est du langage SQL, l'informatique est tres diversifier

n°2255869
sinail
Posté le 16-04-2015 à 00:55:54  profilanswer
 

J'ai fait la requete :
 
DELETE Passwords  
FROM Passwords  
LEFT OUTER JOIN (
        SELECT MIN(id) as id, link, username, password
        FROM Passwords
        GROUP BY link, username, password
    ) AS Passwords_1  
    ON Passwords.id = Passwords_1.id
WHERE Passwords_1.id IS NULL
 
Mais j'ai l'impression qu'elle me supprime plus que les doublons sans garder une seule fois le doublon.

mood
Publicité
Posté le 16-04-2015 à 00:55:54  profilanswer
 

n°2255871
flo850
moi je
Posté le 16-04-2015 à 08:27:39  profilanswer
 

Mais pourquoi tu n'essayes pas la requête que je t'ai donné ?


---------------


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Delete doublon

 

Sujets relatifs
Lecture Flux XML, Doublon et ressources SQLChercher / Copier / coller / renomer les faux doublon
[résolut]problème avec char** new[] et delete[][Resolu] Création d'un générateur de code aléatoire sans doublon
VBA prob de doublonoperator delete
Delete from avec conditions multiples(VBS )Eviter doublon - création utilisateur ad
[MYSQL] rechercher le dernier doubloninterdire des doublon dan un JTable
Plus de sujets relatifs à : Delete doublon


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR