2009-06-15 14 views
139

要約:GROUP_CONCAT文で値をソートする方法はありますか?MySQL:GROUP_CONCAT値をソート

問合せ:

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 

私はこの行を取得する:

工芸»建具

管理»組織

私はこのようにそれをしたい:

管理»組織

確か工芸»建具

+0

また、http://stackoverflow.com/q/8631210/632951 – Pacerier

答えて

300

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

を完了してください。悲しいことに、コメントにコードを書くことはできません... – Ivar

+0

あなたのコードは、あなたの特定の答えに大きく依存しているため、あなたのオリジナルの投稿以外には配置しないでください。このコメントにここを置くと、ここのプログラマーの多くはそれを見ず、あなたは最高の応答を得ることはできません:) – Sampson

+0

悲しいですが真実。 :)十分なコードですか、私は全体のクエリを書く必要がありますか? – Ivar

16

あなたがで注文する意味しますか?

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;