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

Requêtes MySQL Discussion :

Difficultés pour construire une requête à partir de GROUP_CONCAT


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 21
    Points : 19
    Points
    19
    Par défaut Difficultés pour construire une requête à partir de GROUP_CONCAT
    Bonjour,

    Je rencontre des difficultés pour construire une requête.

    Je dispose d'une table comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    id  string         nb
    1   "Maison"       2
    2   "Bateau"       1
    3   "Ordinateur"   3
    Je cherche à récupérer la chaine "Maison, Maison, Bateau, Ordinateur, Ordinateur, Ordinateur". Tous les mots doivent être présents nb fois, et séparés par des virgules et des espaces.

    Si je n'avais pas eu besoin de les avoir plusieurs fois j'aurais écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id, GROUP_CONCAT(string SEPARATOR ", ") AS string
    FROM table
    GROUP BY id
    Mais ici cela n'est pas suffisant.

    Merci d'avance pour votre aide !

    PS : Je ne peux pas passer par un traitement en PHP ou autre.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 948
    Points : 5 847
    Points
    5 847
    Par défaut
    Avec REPEAT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    mysql> select group_concat(substring(repeat(concat(', ',str),nb),2))
        ->   from t;
    +-------------------------------------------------------------+
    | group_concat(substring(repeat(concat(', ',str),nb),2))      |
    +-------------------------------------------------------------+
    |  Maison, Maison, Bateau, Ordinateur, Ordinateur, Ordinateur |
    +-------------------------------------------------------------+
    1 row in set (0.00 sec)
     
    mysql>

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup !

    Et très bonne idée pour le substring.

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

Discussions similaires

  1. des difficultés pour comprendre une requête
    Par johnny3 dans le forum Schéma
    Réponses: 5
    Dernier message: 10/08/2008, 19h43
  2. [MySQL] Construire une requête à partir de listes
    Par tagasuk dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/05/2007, 18h34
  3. Aide pour construire une requête SQL
    Par squalito dans le forum Oracle
    Réponses: 1
    Dernier message: 09/03/2007, 15h04
  4. Aide pour construire une requête SQL
    Par squalito dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/03/2007, 14h08
  5. [SQL] aide pour construire une requête
    Par mealtone dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/08/2006, 15h16

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