2009-06-15 17 views
139

Kurz gesagt: Gibt es eine Möglichkeit, die Werte in einer GROUP_CONCAT-Anweisung zu sortieren?MySQL: Sortieren GROUP_CONCAT Werte

Abfrage:

GROUP_CONCAT((SELECT GROUP_CONCAT(parent.name SEPARATOR " » ") 
FROM test_competence AS node, test_competence AS parent 
WHERE node.lft BETWEEN parent.lft AND parent.rgt 
    AND node.id = l.competence 
    AND parent.id != 1 
ORDER BY parent.lft) SEPARATOR "<br />\n") AS competences 

ich diese Zeile:

Crafts » Tischlerei

Verwaltung » Organisation

ich es so will:

Verwaltung » Organisation

Crafts » Tischlerei

+0

Auch http://stackoverflow.com/q/8631210/632951 – Pacerier

Antwort

300

Sicher, siehe http://dev.mysql.com/doc/refman/...tions.html#function_group-concat:

SELECT student_name, 
    GROUP_CONCAT(DISTINCT test_score ORDER BY test_score DESC SEPARATOR ' ') 
    FROM student 
    GROUP BY student_name; 
+0

Fertig. Traurig, dass Sie keinen Code in Kommentare einfügen können ... – Ivar

+0

Ihr Code wird stark für Ihre spezifische Antwort verwendet, und sollte daher nicht irgendwo außer Ihrem ursprünglichen Beitrag platziert werden. Wenn Sie es hier in diesem Kommentar setzen, werden viele Programmierer hier nicht sehen, und Sie werden nicht die bestmögliche Antwort bekommen :) – Sampson

+0

Traurig, aber wahr. :) Ist dieser Code genug oder sollte ich die ganze Abfrage schreiben? – Ivar

16

Haben Sie bestellen das?

SELECT _key,    
COUNT(*) as cnt,    
GROUP_CONCAT(_value ORDER BY _value SEPARATOR ', ') as value_list  
FROM group_concat_test  
GROUP BY _key  
ORDER BY _key;