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

PHP & Base de données Discussion :

Suppression de doublons [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut Suppression de doublons
    Bonjour,

    Je cherche à supprimer les doublons d'une table et laisser un enregistrement (je ne cherche pas à tout supprimer).

    Voici les requêtes SQL essayées :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DELETE FROM sous_chapitres
    LEFT OUTER JOIN (
            SELECT MIN(id_chapitre) as id,titre_sous_chapitre,contenu_sous_chapitre
            FROM sous_chapitres
            GROUP BY titre_sous_chapitre, contenu_sous_chapitre
        ) as t1 
        ON sous_chapitres.id = t1.id
    WHERE t1.id IS NULL
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE
    FROM   sous_chapitres T
    WHERE  T.id_chapitre < ANY (SELECT id_chapitre
                        FROM   sous_chapitres T2
                       WHERE  T.id_chapitre <> T2.id_chapitre)

    Voici l'erreur obtenue :
    #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 'LEFT OUTER JOIN (
    SELECT MIN(id_chapitre) as id,titre_sous_chapitre,con' at line 2


    Qu'est-ce qui ne va pas ?

    La première étape, j'y suis arrivé avec :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT   COUNT(*) AS nbr_doublon, id_chapitre, titre_sous_chapitre, contenu_sous_chapitre
    FROM     sous_chapitres
    GROUP BY id_chapitre, titre_sous_chapitre, contenu_sous_chapitre
    HAVING   COUNT(*) > 1

    Je sais qu'il est possible de déclarer des champs comme uniques mais cela ne m'intéresse pas. Je voudrais supprimer les doublons en utilisant une requête SQL DELETE.

    En parcourant le WEB, j'ai vu qu'il était possible d'utiliser une table secondaire pour comparer les enregistrements et ceux qui sont en double. Mais, ça m'étonnerait que ce n'est pas possible via une simple requête SQL DELETE.

    Voici la requête SQL qui marche mais ça n'a pas apporté de différence :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE FROM sous_chapitres
    WHERE id_chapitre NOT IN ( 
                         SELECT MAX(id_chapitre)
                         FROM chapitres
                         GROUP BY id_chapitre

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Tu as regardé par là ? (lien direct et lien imbriqué).

    http://www.developpez.net/forums/d11...t-plus-recent/
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

+ 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