2013-05-16 6 views
3

J'ai une requête très complexe. Je ne veux pas partir de zéro. Je colle donc ici des données d'ensemble de résultats qui doivent être formatées en fonction de certaines contraintes.Mysql Ordre de requête par

Ma requête est la suivante ..

SELECT 
    GROUP_CONCAT(fix_seq SEPARATOR '-') AS fix_seq, 
    apt, 
    star, 
    trans, 
    fix 
FROM 
    tabe 
GROUP BY 
    star, trans 
ORDER BY 
    seq; 

problème ici est je dois obtenir la séquence des corrections en regroupant l'étoile et trans et de prendre le suivants dans l'ordre croissant order.but dans le résultat si l'on observe nous pouvons voir qu'il y a un problème dans l'ordre de concaténation.

Mais la commande ne conserve pas.Peut-on trouver un endroit où je vais mal? Merci d'avance.

Répondre

4

ajouter ORDER BY clause dans la fonction,

GROUP_CONCAT(fix_seq ORDER BY seq SEPARATOR '-') 

syntaxe de base:

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

Ohh merci beaucoup – user2341693

+0

vous êtes les bienvenus ':)' –

0

Utilisez ORDER BY,

GROUP_CONCAT(fix_seq ORDER BY seq SEPARATOR '-') 
AS fix_seq,apt,star,trans,fix 
from tabe 
group by star,trans 
order by seq;