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énation de valeur dans une variable MySQL


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut concaténation de valeur dans une variable MySQL
    bonjour, je suis entrain de faire une procédure et je voudrais savoir comment faire pour concaténé dans une variable, plusieurs valeurs récupérés via une boucle.

    exemple en php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while($i<10){
         $variable=$variable.$i.",";
         $i++;
    }

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut
    J'ai trouvé la fonction CONCAT_WS() mais je ne sais pas comment on fait pour ajouter la valeur d'une variable en paramètre

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut
    Je me demande si avec un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT INTO VARIABLE
    CONCAT_WS(",","Premier nom",NULL,"Dernier nom");
    ça ne marcherait pas...

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($i<10){
         $variable=$variable.$i.",";
         $i++;
    }
    Serait quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    DECLARE i INTEGER;
    DECLARE strResultat VARCHAR(500);
     
    SET i = 0;
    SET strResultat = '';
     
    WHILE (i<10) DO
        SET strResultat = CONCAT(strResultat, i, ',');
        SET i = i+1;
    END WHILE;

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut
    Par contre je ne vois pas trop comment faire avec un curseur (au niveau de la condition dans la boucle), et après mes deux posts se rejoignent car je veux me servire de ce résultat dans une autre requete, du style:


    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    DECLARE i INTEGER;
    DECLARE requete VARCHAR(50);
    DECLARE nouvelle_requete VARCHAR(50050);
    DECLARE autre_req VARCHAR(1000);
    DECLARE strResultat VARCHAR(50000);
    DECLARE curs CURSOR FOR SELECT champ FROM table WHERE condition;
    
    
    SET strResultat = '';
    SET requete = 'SELECT * FROM table WHERE champ NOT IN (';
    
    OPEN curs;
    
    WHILE ( FETCH curs INTO i ) DO //condition dont je ne suis pas sure
        SET strResultat = CONCAT(strResultat, i, ',');
    END WHILE;
    
    CLOSE curs;
    
    SET @nouvelle_requete = CONCAT(requete,strResultat,');'); 
    
    PREPARE nouv_req FROM @nouvelle_requete; //autre requete
    EXECUTE nouv_req; //la il faudrait également que je récupère les résultat 
    de cette requete dans une variable que je vais appeler @peut-etre, avec un into?
    
    WHILE (possible de passer à l'enregistrement suivant de nouv_req) DO 
    
        SET @autre_requete = CONCAT('SELECT blabli FROM table2 WHERE champ = ',@peut-etre,'\'');
    
        PREPARE autre_req FROM @autre_requete; 
        EXECUTE autre_req; // encore peut être avec un into??
    
        INSERT INTO nouvelle table VALUES (toutes les valeurs récupérés);
    
        DEALLOCATE PREPARE nouv_req;
    
    END WHILE
    
    DEALLOCATE PREPARE nouv_req;
    petite question au passage, j'ai remarqué que certaines variables ont un @ et d'autres non, est-ce que c'est pour utiliser la valeur de celle-ci?

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Par défaut
    En faite, si je mets les "INTO" dans la concaténation de ma requete avant de faire le "PREPARE", ça devrait marcher?

    mais après je ne vois pas encore comment parcourir mes résultats avec le "EXECUTE" (au niveau syntaxique) à moins que l'on puisse appeler la requete "préparé" avec FETCH?

Discussions similaires

  1. Comment modifier la valeur d'une variable Mysql.
    Par pcsystemd dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 19/09/2007, 08h22
  2. Concaténer les valeurs dans une boucle
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2007, 20h08
  3. Réponses: 8
    Dernier message: 29/03/2007, 14h48
  4. pb pour rentrer une valeur dans une bdd mysql
    Par gaetan.tranvouez dans le forum Requêtes
    Réponses: 25
    Dernier message: 02/06/2006, 21h29
  5. récupération d'une valeur dans une variable
    Par jh0483 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2005, 09h49

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