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 :

Problème de taille de résultat suite à un GROUP_CONCAT (apriori) [MySQL-5.6]


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 80
    Points
    80
    Par défaut Problème de taille de résultat suite à un GROUP_CONCAT (apriori)
    Bonjour à tou-te-s,
    je bloque sur un problème posé par une utilisation sans doute limite de la fonction GROUP_CONCAT d'une requête. Je viens de découvrir cette fonction mais je ne suis pas un expert certifié en SQL.
    L'idée est d'obtenir toutes les adresses d'un contact dans un même enregistrement. La requête fonctionne comme attendue mais dans certains enregistrements les dernières adresses sont coupées. J'ai donc essayer de caster le GROUP_CONCAT pour le mettre sous un type de chaîne plus longue... mais MySQL râle.

    C'est où que j'ai mal écrit la requête?...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT
    
    CONCAT(`tab1`.`Nom`, ' ', `tab1`.`Prenom`) 'Nom Prénom',
    `tab1`.`id` 'ID',
    CAST(GROUP_CONCAT(
        CONCAT ('* ', `tab2`.`type`, ' (', `tab2`.`adresse`, ')'))
        ORDER BY `tab2`.`type` ASC
        SEPARATOR '\n') AS LONGTEXT) AS 'Type adresse (adresse)'
    
    FROM `tab1`
    LEFT JOIN `tab2` ON `tab2`.`ID` = `tab1`.`ID`
    GROUP BY `tab1`.`ID`
    Saluations

    PS: la partie en rouge est une tentative de caste... qui ne marche pas

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 80
    Points
    80
    Par défaut
    Bon ben... autant pour moi ... J'ai encore cherché et j'ai fini par trouvé dans la doc de MySQL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SET [GLOBAL | SESSION] group_concat_max_len = val;
    Apparemment c'est la méthode pour éviter les débordements.

    Salutations à tous!

  3. #3
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut PierrotY.

    Juste une question : quel est l'intérêt d'avoir toutes tes adresses dans une seule colonne ?
    Je ne comprends pas trop ce que cela va apporter ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 80
    Points
    80
    Par défaut
    Je travaille sur un site qui n'a pas encore une interface bien poussée mais il y a un contributeur (pas un informaticien) qui a besoin rapidement de certaines informations croisées. Je dois donc faire une requête et pour lui présenter le résultat de la manière la plus lisible, je voulais mettre une ligne par personne...
    Bon, c'est aussi pour une question de principe. Je voulais trouver la solution au cas où un jour ce soit indispensable dans un développement. Et puis c'est bien de se perfectionner .

  5. #5
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut PierrotY.

    Citation Envoyé par PierrotY
    Je dois donc faire une requête et pour lui présenter le résultat de la manière la plus lisible, je voulais mettre une ligne par personne...
    En concaténant toutes vos adresses dans une seule colonne, le résultat sera illisible. Et de plus, votre ligne sera très longue.

    Si c'est une question de présentation, il vaut mieux résoudre cela en Php.
    Mettre une adresse par ligne, et d'une ligne à l'autre ne répéter que ce qui est indispensable à la compréhension de votre tableau.
    Et pourquoi ne pas fournir, à votre contributeur, les résultats en les mettant dans un fichier Excel ?

    Je trouve que vous vous compliquez l'existence pour pas grand chose.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Points : 80
    Points
    80
    Par défaut
    Je voulais faire ça le plus simplement possible: requête dans PhpMyAdmin puis export dans un fichier.
    Bon, c'est vrai que j'aurais pu passer par un fichier PHP. Mais le site sur lequel je suis est un site que je suis en train de reprendre, je ne maîtrise pas encore... et l'opération doit être ponctuelle... Mais je note quand même votre remarque!

    ...

    Je devrais causer plus souvent sur ce site. Il y a toujours des gens qui ont des bonnes idées ou simplement qui en font germer des lumineuses

    Bon weekend Artemus!
    Pierrot

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/02/2009, 17h21
  2. [CSS] Problème de taille de div
    Par meda dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 24/08/2005, 14h30
  3. problème d'affichge de résultat de requétte
    Par developpeur_mehdi dans le forum Bases de données
    Réponses: 7
    Dernier message: 14/03/2004, 15h58
  4. [swing][JComboBox]Problème de taille
    Par n!co dans le forum Composants
    Réponses: 8
    Dernier message: 06/03/2004, 10h53
  5. [langage] Problème de taille de fichier à mettre dans
    Par And_the_problem_is dans le forum Langage
    Réponses: 10
    Dernier message: 13/08/2002, 09h41

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