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

Langage SQL Discussion :

MySQL enlever doublons dans table


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut MySQL enlever doublons dans table
    Bonjour,

    Je veux enlever des doublons dans une table.

    Par exemple, la table a 6 colonnes. Je veux m'assurer que les colonnes 1 et 2 ne se répètent pas sur une même ligne. Toutefois, je veux quand même que le résultat contient l'affichage des 6 colonnes. Je veux garder n'importe quelle des lignes qui a des doublons.
    Ex :

    3390 CYL_START CYL_END ALLOC UTIL serveur
    0520 1 500 20 10 sigssa
    0530 3 200 30 20 sigml17
    0520 1 100 20 5 sigllo0


    Le résultat devrait être :

    3390 CYL_START CYL_END ALLOC UTIL serveur
    0520 1 500 20 10 sigssa
    0530 3 200 30 20 sigml17


    avec ça :
    SELECT DISTINCT CYL_start, 3390
    FROM `zvm_dfultra`

    On obtient seulement :
    3390 CYL_START
    0520 1
    0530 3

    J'ai MySQL 4.1. Merci !

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    SQLpro a rédigé un article où il propose différentes méthodes pour éliminer des doublons.
    L'avez-vous lu ?
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Erreur près de DELETE FROM
    J'ai lu l'article et c'est des doublons relatifs que j'ai. La première partie de la requête fonctionne mais, j'ai de la difficulté avec la deuxième. J'ai une erreur de syntaxe près de DELETE FROM (ligne 10)....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     SELECT DISTINCT `3390` , `cyl_start` , `Mo_alloc` 
    FROM `zvm_dfultra` t1
    WHERE EXISTS (
     
     
    SELECT `3390` , `cyl_start` , `mo_alloc` 
    FROM `zvm_dfultra` t2
    WHERE T1.`3390` = T2.`3390` 
    AND T1.`CYL_start` = T2.`CYL_start` 
    AND T1.`mo_alloc` <> t2.`mo_alloc` 
    )
    DELETE FROM `zvm_dfultra` t WHERE T.`mo_alloc` < ANY(
    SELECT `mo_alloc` 
    FROM `zvm_dfultra` t2
    WHERE T.`mo_alloc` <> T2.`mo_alloc` 
    AND T.`3390` = T2.`3390` 
    AND T.`CYL_start` = T2.`CYL_start` 
    )

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Donnez-nous la requête qui génère une erreur.
    Donnez-nous aussi le message d'erreur et la ligne concernée.

    Votre 1ère requête (la requête SELECT) fonctionne-t-elle ?
    Si ce n'est pas le cas alors MySQL 4.1 n'accepte PAS les sous-requêtes donc ne cherchez pas plus loin.
    Si, en revanche, cette 1ère requête ne génère pas d'erreur alors peut être que vous pouvez essayer de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM zvm_dfultra...
    par
    Enfin pourquoi utiliser des backquotes pour vos noms de tables, colonnes ?
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut La deuxième requête ne fonctionne pas
    Bonjour,

    La première requête fonctionne. Le DELETE ne fonctionne pas. J'utilise MySQL 4.1.9. J'obtiens le message suivant :

    #1064 - Erreur de syntaxe près de 'DELETE `zvm_dfultra` t
    WHERE T.`mo_alloc` < ANY
    (SELECT ' ࠬa ligne 9

    Les backquotes servent à identifier des colonnes. Je n'ai pas plus de détails.

Discussions similaires

  1. [WD16] Doublon dans table avec filtre
    Par WDKyle dans le forum WinDev
    Réponses: 18
    Dernier message: 14/09/2013, 23h18
  2. Enlever doublon dans requête somme
    Par cedriclv dans le forum Langage SQL
    Réponses: 13
    Dernier message: 03/06/2013, 10h56
  3. [Toutes versions] vérifier doublon dans table
    Par chelmi95 dans le forum Access
    Réponses: 1
    Dernier message: 27/11/2009, 11h17
  4. Coder les doublons dans table ACCESS
    Par landi2008 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/08/2008, 13h35
  5. rechercher et éliminer doublons dans table
    Par patbeautifulday1 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/05/2007, 10h27

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