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 ligne en SQL


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
    Inscrit en
    Mai 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 147
    Par défaut Concaténation de ligne en SQL
    Bonjour tout le monde,
    je cherche à concaténer plusieurs lignes en SQL (en utilisant un select).
    Les lignes à concaténer doivent avoir le même serviceId (voir exemple en dessous)

    g une table contact du genre:
    ___________________________________________________
    contactId | serviceId | nom | prenom | tel ....
    ___________________________________________________
    01 | 1 |Charlotte| Glatemoutte| 0147140...
    _____________________________________________________
    02 | 1 | Roger | DuGland | 01 54 4 84
    _____________________________________________________
    03 | 2 | Silvain | pipougnol | 06 35156151
    ___________________________________________________

    ou contactId est une clé primaire.

    Je cherche à obtenir un truc du genre (dans un select):
    _______________________________________________________
    serviceId | Contacts
    ___________________________________________________________
    1 |(Charlotte Glatemoutte,0147140)(Roger DuGland,01 54 4 84)
    _________________________________________________________
    2 |(Silvain pipougnol ,06 35156151)
    ________________________________________________________


    J'utilise mysql v1.1.19
    Quelqu'un aurait une id ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 147
    Par défaut
    Je viens de trouver la foncton GROUP_CONCAT :
    ________________________________________________
    GROUP_CONCAT(expr)

    Syntaxe complète :

    GROUP_CONCAT([DISTINCT] expr [,expr ...]
    [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]
    [SEPARATOR str_val])

    Cette fonction a été ajoutée en MySQL version 4.1. Elle retourne la chaîne résultant de la concaténation de toutes les valeurs du groupe :

    mysql> SELECT student_name,
    -> GROUP_CONCAT(test_score)
    -> FROM student
    -> GROUP BY student_name;

    ou :

    mysql> SELECT student_name,
    -> GROUP_CONCAT(DISTINCT test_score
    -> ORDER BY test_score DESC SEPARATOR " ")
    -> FROM student
    -> GROUP BY student_name;

    Avec MySQL, vous pouvez obtenir la concaténation d'une série d'expressions. Vous pouvez éliminer les doublons en utilisant DISTINCT. Si vous voulez trier les valeurs du résultat, il faut utiliser ORDER BY. Pour trier en ordre inverse, ajoutez le mot clé DESC (descendant) au nom de la colonne que vous triez dans la clause ORDER BY. Par défaut, l'ordre est ascendant. Cela peut être spécifié explicitement avec le mot clé ASC. SEPARATOR est une chaîne qui sera insérée entre chaque valeur du résultat. La valeur par défaut est une virgule ‘","’. vous pouvez supprimer le séparateur en spécifiant la chaîne vide SEPARATOR "".

    Vous pouvez donner une taille maximale à la variable group_concat_max_len de votre configuration. La syntaxe pour faire cela durant l'exécution est :

    SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;

    Si une taille maximale a été atteinte, le résultat sera tronqué à cette taille maximale.

    Note : il y a encore de petites limitations pour GROUP_CONCAT() lorsqu'il faut utiliser des valeurs DISTINCT avec ORDER BY et et en utilisant les valeurs BLOB. Voyez Section 1.5.7.4, « Bugs connus / limitations de MySQL ».

    GROUP_CONCAT() a été ajoutée en MySQL 4.1.

    _______________________________________________
    http://dev.mysql.com/doc/refman/5.0/...functions.html
    ________________________________________________
    Je pense être sur la bonne piste

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

Discussions similaires

  1. [VBA DAO] Concatèner deux lignes
    Par rayni88 dans le forum VBA Access
    Réponses: 12
    Dernier message: 18/07/2007, 11h18
  2. Réponses: 6
    Dernier message: 31/05/2007, 15h54
  3. affichage de lignes en sql
    Par mmb04 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 29/03/2007, 18h43
  4. Réponses: 2
    Dernier message: 13/07/2006, 17h01
  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