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

MySQL Discussion :

information colonne avec condition where


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2020
    Messages : 11
    Par défaut information colonne avec condition where
    Bonjour,

    Je bloque sur une réquete.

    En française, c'est simple : Pour une ligne, je souhaite récupérer le nom des colonnes qui ont une valeur égale à 1 .

    En fait, j'ai le tableau suivant :

    correspondance_phase_score(phase_exp,score, scoreA, scoreB, scoreC, scoreD, scoreE, scoreF, scoreG, scoreH, scoreI, scoreJ, scoreK, scoreL, scoreM, scoreN, scoreO, scoreP, scoreQ, scoreR, scoreS, scoreT, scoreU, scoreV, scoreW)

    ('V0', 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0),
    ('V1', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),
    ('V2', 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
    ('V3', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0);

    Et je souhaite savoir pour V0 par exemple quelle colonne est égale à 1. Je voudrais le résultat suivant : score scoreA score B scoreN scoreO scoreP score

    J'ai commencé par cette réquette :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT `COLUMN_NAME` 
    FROM `INFORMATION_SCHEMA`.`COLUMNS` 
    WHERE `TABLE_NAME`='correspondance_phase_score'
    ORDER BY ORDINAL_POSITION
    qui me selectionne TOUS les noms de colonnes.
    J'aimerais rajouter la condition qui manque : un genre de INNER JOIN correspondance_phase_score WHERE score = 1 AND scoreA = 1 AND ...
    mais je ne sais pas comment liée cette condition (pour le ON)...

    Est-ce que quelqu'un pourrait m'aider ?
    Merci beaucoup !

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Votre table est très mal modélisée !

    Ceci dit, une requête de ce genre devrait pouvoir vous donner ce que vous voulez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT phase_exp,
    CASE WHEN score = 1 THEN 'score' ELSE '' END AS score,
    CASE WHEN scoreA = 1 THEN 'scoreA' ELSE '' END AS scoreA,
    -- ... idem pour toutes les colonnes de score
    FROM correspondance_phase_score
    WHERE condition_sur_ligne_a_extraire
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre averti
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2020
    Messages : 11
    Par défaut
    Bonjour, merci pour votre suggestion ! elle fonctionne, cependant je souhaite que la requete ne prenne pas en compte le nom des colonnes. Je souhaite que la requête puisse s'adapter si le nom des colonnes changent (par exemple si le tableau score, scoreA, scoreB etc... soit paramètreA, paramètreB etc). D'où mon interet pour la requete avec `INFORMATION_SCHEMA`.`COLUMNS`.
    Si je pars du principe que je connais le nom des colonnes, je pourrais le faire en php après avoir selectionner une ligne de mon tableau.
    Est-ce que vous auriez une autre idée pour prélever le nom des colonnes (sans les connaitre) pour les valeurs = 1 ?

  4. #4
    Membre averti
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2020
    Messages : 11
    Par défaut
    J'ai changé le squelette de ma base de donnée finalement, avec une colonne phase et une colonne score ( avec le nom du score A B C...) et avec une colonne valeur ( 0 ou 1), beaucoup plus simple comme ça !

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

Discussions similaires

  1. [VBA-E] Minimum d'une colonne avec condition sur autre colonne
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2007, 17h01
  2. [VBA-E] Suppression des colonnes avec condition
    Par desdenova dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/02/2007, 13h39
  3. [Oracle] Update sur 1 colonne avec condition existence (SUBSTR)
    Par magic charly dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/04/2006, 13h57
  4. Réponses: 3
    Dernier message: 16/02/2006, 16h58
  5. nouvelle colonne avec condition
    Par evaness dans le forum Access
    Réponses: 6
    Dernier message: 06/09/2005, 16h35

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