2009-06-15 18 views
139

W skrócie: czy istnieje sposób sortowania wartości w instrukcji GROUP_CONCAT?MySQL: Sortuj wartości GROUP_CONCAT

Zapytanie:

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 

mam ten wiersz:

Rzemiosł » stolarki

Administracja » Organizacja

chcę go tak:

Administracja » Organizacja

Rzemiosła » Stolarka

+0

Również http://stackoverflow.com/q/8631210/632951 – Pacerier

Odpowiedz

300

Jasne, patrz 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

Zrobione. Smutne, że nie możesz umieścić kodu w komentarzach ... – Ivar

+0

Twój kod jest silnie uzależniony od twojej konkretnej odpowiedzi i dlatego nie powinien być umieszczany nigdzie poza twoim oryginalnym wpisem. Jeśli umieścisz to tutaj w tym komentarzu, wielu programistów tutaj tego nie zobaczy, a ty nie uzyskasz najlepszej możliwej odpowiedzi :) – Sampson

+0

Smutne, ale prawdziwe. :) Czy ten kod jest wystarczający, czy powinienem napisać całe zapytanie? – Ivar

16

Czy chodziło Ci zamówić przez?

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; 
Powiązane problemy