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 :

Supprimer les enregistrements doublés [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 92
    Par défaut Supprimer les enregistrements doublés
    Bonjour
    SVP, comment supprimer les enregistrements doublés d' une table en SQL

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Par défaut
    Citation Envoyé par z_ahlam Voir le message
    Bonjour
    SVP, comment supprimer les enregistrements doublés d' une table en SQL
    Doublés comment ?
    - Toutes les colonnes sont identiques,
    - ou il y a juste une colonne identique,
    - autres, précisez

    Nombre d'enregistrements dans la table, nombre de doublons ?

  3. #3
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 92
    Par défaut
    Merci pour la réponse
    pas toutes les colonnes mais je dois voir sur 5 colonnes

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Par défaut
    OK donc tu as des colonnes a,b,c,d,e qui doivent être distinctes, mais est-ce que :

    1- la colonne a doit être unique, idem la colonne b, etc

    2- c'est la valeur (a,b,c,d,e) qui dont être unique

  5. #5
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 92
    Par défaut
    dans ma table j'ai 18 champs mais je doit filtrer les doublon sur 5 champs, comme si une clé de 5 champs, mais ya pas de clé , aprés que je supprime les enregistrements doublé je ferai la clé.donc je dois faire le filtrage sur 5champs

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Par défaut
    Soit tu créé une nouvelle table (merci la syntaxe non standard mysql) :

    CREATE TABLE nouvelle AS SELECT * FROM ancienne GROUP BY a,b,c,d,e,f;

    Ou alors tu fais :

    SELECT count(*) AS nombre, a,b,c,d,e,f FROM table GROUP BY a,b,c,d,e,f HAVING count(*) > 1

    ça te donne les duplicatas

    mets ça dans un DELETE, je ne me souviens plus la syntaxe pour les DELETE avec JOIN mais tu devrais trouver

  7. #7
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 92
    Par défaut
    voila la requette avec 3 champs qui affiche les doublon je ne sais pas si c'est juste.
    avec 1 seul champ ça fonctionne avec 3champs j'attend depuis 5mnts
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * FROM INSELEVE1 t1 JOIN (
            SELECT `col1,col2,col3` FROM INSELEVE1 GROUP BY `col1,col2,col3` HAVING count(*) != 1
          ) t2 USING (`col1,col2,col3`)
    ORDER BY `col1`

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Par défaut
    Si tu fais juste ça :

    CREATE TABLE temp_doublons AS
    SELECT count(*) as nombre, col1,col2,col3
    FROM INSELEVE1
    GROUP BY col1,col2,col3 HAVING count(*) > 1

    ça prend combien de temps et ça retourne combien de doublons ?
    y'a combien de lignes dans ta table ?

    (là je le mets dans une table temp, tu peux la réutiliser ensuite sans avoir à refaire ta longue requête, c'est plus pratique si tu veux examiner les doublons par exemple)

  9. #9
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 92
    Par défaut
    Merci bcp , j'ai trouvé cette solution en cette page
    http://blogmotion.fr/programmation/p...ppression-1588.
    la creation d'un index elimine les enregistrements doublés.
    merci bcp

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

Discussions similaires

  1. [VBA Access] supprimer les enregistrements/remplir table/dll
    Par genirette dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/01/2008, 09h23
  2. requete qui Supprime les enregistrement d'une table
    Par mqsi dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 24/10/2007, 12h04
  3. [Requete]Supprimer les enregistrements
    Par le_gueux90 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 13/06/2007, 12h15
  4. Réponses: 2
    Dernier message: 26/04/2007, 16h32
  5. Supprimer les enregistrements d'une table !
    Par obon dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/05/2006, 11h15

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