MySQL : GROUP_CONCAT 값 정렬


182

간단히 말해서 : 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

나는이 행을 얻는다 :

공예품»가구 만드는 일

관리»조직

나는 이것을 이렇게 원한다.

관리»조직

공예품»가구 만드는 일


답변:


389

물론 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;

귀하의 코드는 특정 답변에 크게 의존하므로 원본 게시물 이외의 위치에 배치해서는 안됩니다. 이 의견을 여기에 넣으면 여기에 많은 프로그래머가 그것을 보지 못하고 최상의 응답을 얻지 못할 것입니다 :)
Sampson

슬프지만 사실이야. :) 코드가 충분합니까, 아니면 전체 쿼리를 작성해야합니까?
Ivar

DESC 대신 ASC를 사용해 보셨습니까?
Sampson

나는 그것들 중 하나를 사용하지 않았다 (ASC = 기본값).
Ivar

10
난 당신이 할 수 몰랐 order by내에서 group_concat이 정확한 순간까지. 내가 겪고 있던 문제를 해결합니다. 감사!
DiMono

22

주문 하시겠습니까?

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;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.