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

SQL Procédural MySQL Discussion :

Concaténer un SELECT dans une colonne


Sujet :

SQL Procédural MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 31
    Points
    31
    Par défaut Concaténer un SELECT dans une colonne
    Bonjour,

    Nouvelle épreuve en ce beau jour ensoleillé. J'essaye de mettre le résultat d'une requête dans une seule colonne.

    Voici mon code pour être plus clair :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DELIMITER $$
    CREATE TRIGGER UPD_FAC AFTER UPDATE ON FAC
    FOR EACH ROW
    BEGIN
    INSERT INTO LOG (`DATE`,`TABLE`,TYPE,ENREGISTREMENT,COMMENTAIRE) VALUES 
    (NOW(),"FAC","UPDATE",(SELECT CONCAT(SELECT * FROM FAC WHERE Numero=NEW.Numero),"");
    END$$
    Je voudrais mettre dans ma requête enregistrement, la ligne qui vient d'être modifié et cela en utilisant un CONCAT pour contatener toutes les colonnes.

    Quelqu'un aurait-il une idée de comment je pourrais procéder ?

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    As-tu tant de champs que ça que tu ne peux pas les citer un à un?
    ^^ ça serait trop simple peut être. Pourquoi faire un double SELECT? (SELECT CONCAT(SELECT...)?
    SELECT CONCAT(champ1, champ2, ... champ10, " ")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONCAT(champ1, champ2, champ3, champ4, champ5, champ6, champ7, champ8, champ9, champ10, " ") FROM fac WHERE Numero=NEW.Numero

    Jasmine,
    -- Jasmine --

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    Pour répondre à ta question, oui j'ai tant de champ que ça. Entre 100 et 200 !
    C'est pour ça que je cherche une solution plus simple et plus rapide.

    La requête que j'ai présenté, c'est juste un essai mais ça permet aussi de comprendre mieux ce que je veux faire.

    Merci tout de même

  4. #4
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Je ne vois plus qu'une solution : créer le(s) trigger(s) via un script qui va écrire le concat en se basant sur un DESC/SHOW COLUMNS. De ce point de vue là plus besoin de SELECT, utiliser NEW suffit.

    PREPARE/EXECUTE pourraient aider mais ils sont interdits dans les trigger

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Personnellement, ayant une table contenant de 100 à 200 champs, je commencerais par me demander si les données ne peuvent pas être structurées différemment.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    En fait, j'ai plusieurs tables et elles ont des noms de champs différents, donc au final quand on ajoute tous les champs, on arrive bien à ce nombre.

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

Discussions similaires

  1. Résultat d'un SELECT dans une colonne
    Par billbocquet dans le forum InterBase
    Réponses: 5
    Dernier message: 14/01/2012, 08h53
  2. SELECT sur doublons dans une colonne
    Par vador972 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/01/2008, 14h21
  3. Selection si doublons dans une colonne
    Par PhilMarcellus dans le forum Requêtes
    Réponses: 3
    Dernier message: 19/05/2007, 12h21
  4. Requête SELECT avec deux champs dans une colonne ??
    Par fredhali2000 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 08/06/2006, 10h41
  5. Concaténer des lignes d'enregistrements dans une colonne
    Par dany13 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 08/07/2005, 21h56

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