2015-01-22 2 views
2

집합의 시퀀스 순으로 연결된 이름을 어떻게 연결할 수 있습니까 (이 값은 "쉼표를"4,3,2 "와 같이 구분 한 변수입니다)? 지금까지 이드는 "2,3,4"라는 아이디로 정렬되었습니다. 이것은 내 하위 쿼리입니다. 당신은 find_in_set에 ID가 같은 순서로 이름을 주문 group_concat 기능에 order by을 사용할 수 있습니다집합의 값 순번순으로 정렬

SELECT GROUP_CONCAT(t.name SEPARATOR ',') FROM table t WHERE find_in_set(t.id, "4,3,2") > 0 
+0

의 결과를 사용하여 2 그래서 당신은 당신의 결과를 주문할 수있을 것입니다. – Jens

+0

그것은 이번에는 그런 식으로 필요합니다. –

답변

2

find_in_set => 4 인덱스 ID => 3 하나가 될 것 ID에 대한 같은 일치하는 값의 인덱스를 반환 지수는 CSV는 아주 나쁜 데이터베이스 디자인으로`id` 년대 저장 find_in_set

SELECT 
GROUP_CONCAT(t.name ORDER BY FIND_IN_SET(id, "4,3,2") SEPARATOR ',') 
FROM t 
WHERE FIND_IN_SET(t.id, "4,3,2") > 0 

DEMO

+1

그것이 내가 필요한 것입니다. 솔루션을 가져 주셔서 감사합니다. –