IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

suppression de doublons


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Par défaut suppression de doublons
    bonjour,

    j'ai une table qui contient des doublons relatifs que je voudrais supprimer.

    je voudrais donc utiliser ce code pris sur developpez.com:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     DELETE FROM ouvrage o 
    where o.idouvrage > any (select idouvrage 
    from ouvrage q 
    where o.idouvrage<>q.idouvrage 
    and o.auteur=q.auteur 
    and o.titre=q.titre);
    mais j'ai l'erreur suivante:

    MySQL a répondu:
    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 'where o.idouvrage > any (select idouvrage from ouvrage q where o.idouvrage<>q.id' at line 1

    donc voila

    si quelqu'un peu m'aider

    a savoir que ce code fonctionne parfaitement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select * 
    FROM ouvrage o 
    where o.idouvrage > any (select idouvrage 
    from ouvrage q 
    where o.idouvrage<>q.idouvrage 
    and o.auteur=q.auteur 
    and o.titre=q.titre);

    merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Par défaut
    Bonjour,

    Même si je n'ai pas cru voir qu'il était interdit d'utiliser une clause "ANY" dans une requête DELETE, je peux le comprendre.
    Je ne sais pas comment MySQL gère les suppressions, mais tu lui demandes de supprimer des enregistrements en même temps que de parcourir des enregistrements qui peuvent s'être effacés entre-temps, tu vois ? Enfin je ne sais pas c'est qu'une idée ...

    Donc si j'ai bien compris, pour deux ouvrages identiques (même titre, même auteur) on veut garder celui d'ID le plus élevé.

    Le moyen, mais il y a peut-être mieux, qui doit fonctionner est la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DELETE FROM ouvrage
    WHERE idouvrage in (
        SELECT idouvrage FROM ouvrage o
        WHERE o.idouvrage > any (
            SELECT idouvrage FROM ouvrage q 
            WHERE o.idouvrage<>q.idouvrage 
            AND o.auteur=q.auteur 
            AND o.titre=q.titre
        )
    );

  3. #3
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    Votre problème montre les limites de votre modele de données ou de vos contraintes.

    A quoi sert votre clé primaire si des doublons sont possibles ???

    La meilleure solution est de passer par une table temporaire
    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression de doublons et insertion
    Par Samish dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/08/2005, 21h57
  2. Réponses: 17
    Dernier message: 03/12/2004, 11h17
  3. [langage] Suppression de doublon dans tableau
    Par LFC dans le forum Langage
    Réponses: 5
    Dernier message: 15/04/2004, 14h08
  4. Requête de suppression de doublons : besoin d'aide
    Par biocorp dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2004, 17h04
  5. [LG]Suppression de doublons
    Par moustique31 dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2003, 21h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo