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 :

Supprimer les doublons d'une table


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut Supprimer les doublons d'une table
    Hello

    Voila j'ai une table avec pour colonnes:
    id(clé primary)
    champ1
    champ2

    Je voudrais supprimer les lignes où champ1 et champ2 sont identiques aux champ1 et champ2 d'une autre ligne.

    ex:
    id-champ1-champ2
    1----12-----65
    2----57-----22
    3----12-----65
    4-----1-----36

    -> je voudrais virer la ligne 3 ou la ligne 1 qui sont identiques.

    OU ALORS : faire la vérification directement à l'INSERT INTO mais comment ?

    merci

  2. #2
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Citation Envoyé par TheRedLed
    Hello

    Voila j'ai une table avec pour colonnes:
    id(clé primary)
    champ1
    champ2

    Je voudrais supprimer les lignes où champ1 et champ2 sont identiques aux champ1 et champ2 d'une autre ligne.

    ex:
    id-champ1-champ2
    1----12-----65
    2----57-----22
    3----12-----65
    4-----1-----36

    -> je voudrais virer la ligne 3 ou la ligne 1 qui sont identiques.

    OU ALORS : faire la vérification directement à l'INSERT INTO mais comment ?

    merci
    Bonsoir,
    déclarer champ1 en clé unique, empêchera, lors de l'insert, l'ajout
    Cordialement,
    Christophe Charron

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut
    Oui mais non, je veux pouvoir avoir 2 fois la même valeur dans la colonne champ1, et aussi dans la colonne champ2, mais pas dans les 2 !

    ex :
    id-champ1-champ2
    1-----12-----15
    2-----12-----21
    -> pas de problème

    ex :
    id-champ1-champ2
    1-----12-----15
    2-----21-----15
    -> pas de problème

    ex :
    id-champ1-champ2
    1-----12-----15
    2-----12-----15
    -> problème c'est un doublon

  4. #4
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Créer une clef unique portant sur les 2 champs en même temps, ca devrait marcher non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE `matable` 
    ADD UNIQUE `index` ( `champ1` , `champ2` )

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut
    Ouaip c pas mal !

    Seulement en cas de doublon ça me retourne une erreur SQL non ?
    Comment l'intercepter pour l'interpreter comme normale (paske c'est pas une vraie erreur en fait pour moi) ?

  6. #6
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Quelle action veux-tu réaliser lors de l'insertion d'un doublon ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut
    Ben je veux juste le virer, et savoir qu'il a été viré.

    Parce que moi je fais des "or die" après les mysql_query(), alors si l'insert d'un doublon génère une erreur SQL, c'est pas pratique, forcément.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 116
    Points : 68
    Points
    68
    Par défaut
    Bon beh moi j'intercepte l'erreur (1062) avec mysql_errno()...
    Si vous avez mieux...
    ...sinon résolu.

  9. #9
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Si ce n'est pas trop lourd pour ton serveur, il y a plusieurs solutions
    - soit tester si l'enregistrement que tu testes existe déjà dans ta base avant de l'insérer ou de le mettre à jour
    - soit effacer puis ajouter l'enregistrement (si ton enregistrement ne comporte pas de champs date d'enregistrement)

    Mais ca veut dire multiplier les requêtes pour chaque insertion.

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

Discussions similaires

  1. supprimer les doublons dans une table
    Par mavean dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 26/06/2019, 13h26
  2. pour supprimer les doublons d'une table qcq
    Par lamjed dans le forum Oracle
    Réponses: 7
    Dernier message: 19/12/2008, 16h42
  3. [VBA-A] supprimer les doublons d'une table
    Par desdenova dans le forum VBA Access
    Réponses: 3
    Dernier message: 09/02/2007, 16h30
  4. [DEBUTANT]Supprimer les doublons d'une table
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 30/07/2006, 08h03
  5. Comment supprimer les doublons d'une table?!
    Par JauB dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/01/2006, 08h48

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