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 :

GROUP_CONCAT évince toujours le 1er tuple, pourquoi ?


Sujet :

Requêtes MySQL

  1. #1
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 392
    Points : 863
    Points
    863
    Par défaut GROUP_CONCAT évince toujours le 1er tuple, pourquoi ?
    bonjour,

    avez-vous déjà eu l'étrange cas où GROUP_CONCAT évince toujours la 1ere ligne ?

    Je fais une requête qui concatène des champs :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT GROUP_CONCAT(CONCAT(DATE_FORMAT(ta_date, '%d/%m/%Y'),' ',ta_lib,'@@lien_gauche',COALESCE(ta_fichier,''),'@@lien_droite') ORDER BY ta_date DESC SEPARATOR '<br>') AS ligne 
    FROM taches
     WHERE ta_etu_id=5 AND ta_visible=1

    j'obtiens 35 tuples/lignes concaténées dans mon champ 'ligne'




    quand je fais la requête sans le GROUP_CONCAT pour voir les lignes qui doivent être concaténées:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT (CONCAT(DATE_FORMAT(ta_date, '%d/%m/%Y'),' ',ta_lib,'@@lien_gauche',COALESCE(ta_fichier,''),'@@lien_droite') ) AS ligne 
    			 FROM taches 
    			 WHERE ta_etu_id=5 AND ta_visible=1 ORDER BY ta_date desc

    j'obtiens 36 tuples/lignes de résultats


    Sans aucune raison qui me vient à l'esprit, la 1ere ligne (après le ORDER BY effectuée) est évincée du GROUP_CONCAT.
    Si j'insère un 37e tuple dans le jeu de test, la ligne évincée avant apparait au prochain group_concat, mais pas la 37eme dernière !!

    Quelle étrange coquille je ne vois pas ?



    ps : l'idée de ma requête sur la table 'taches' c'est de préparer un contenu textuel HTML qui liste une série de tâches, avec ou sans fichier joint (ta_fichier) correspondant, le tout ordonnée par date. Je liste les dates, les titres, les fichiers. Le nom du fichier est encadrée par 2 marqueurs @@ qui seront remplacés en post-traitement par du contenu HTML préparant un lien HREF.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 224
    Points
    8 224
    Billets dans le blog
    17
    Par défaut
    Une des colonnes doit être NULL => Le CONCAT() est donc NULL => La ligne est donc ignorée par GROUP_CONCAT()

    Sans échantillon difficile d'en dire plus.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 392
    Points : 863
    Points
    863
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Une des colonnes doit être NULL => Le CONCAT() est donc NULL => La ligne est donc ignorée par GROUP_CONCAT()

    Sans échantillon difficile d'en dire plus.
    oui j'avais vu cet effet étrange pour mon champ 'ta_fichier' c'est pour ça que j'ai mis un COALESCE car j'ai clairement vu que la ligne (le tuple) était évincée mais les autres champs pris en compte non pas la possibilité d'être NULL du tout.

    je vais essayer de voir si je peux sortir un jeu de données propre pour être publiée avec la structure de la table minimisée.

    Question au cas où : la string '@@' que j'utilise comme séparateur ensuite, c'est pas un code mysql ou caractère système ? au cas où ça impacterait qqchose... Si ça se trouve c'est un truc de language pour indiquer une variable ou pointeur/curseur comme en c++.

  4. #4
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 392
    Points : 863
    Points
    863
    Par défaut
    j'ai honte...

    j'étais une dans une sous partie script "sql inserting" au lieu de "sql inserted" de mon traitement....
    donc j'avais toujours un tuple de retard sur ma requête et son jeu d'essai....
    plus de 4h perdues à tourner en rond...

    merci quand-même. désolé pour le temps perdu.

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

Discussions similaires

  1. option fenetre : toujours au 1er plan
    Par yayabon dans le forum Windows 7
    Réponses: 0
    Dernier message: 08/04/2014, 16h48
  2. Réponses: 427
    Dernier message: 15/02/2009, 15h38
  3. Toujours mon 1er prog. Infos complémentaires
    Par Jiyuu dans le forum Tkinter
    Réponses: 2
    Dernier message: 15/02/2008, 08h42
  4. [VB.Net] Popup toujours au 1er plan en cas de clic
    Par dyree dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/06/2006, 13h34
  5. Une liste déroulante est-elle toujours en 1er plan ?
    Par Marc365 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/05/2006, 20h16

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