2013-09-01 3 views
0

입력 배열로 질의 결과를 정렬하는 방법이 있습니까? 입력 어레이 (4,2,6,1)이 필요주문 하시겠습니까? where col IN array

SELECT * FROM target_table WHERE id IN (4,2,6,1) ORDER BY ??? 

이이 TARGET_TABLE IDS가 당신에게 결과를 제공 순서 알 수있는 바와 같이 아니라,이 문제를 해결하는 방법은 무엇입니까?

+2

수를 [MySQL - ORDER BY 값을 IN() 내에서 중복 함] (http://stackoverflow.com/questions/958627/mysql-order-by-values-within-in) – MarcinJuraszek

+0

'FIELD' 함수를 사용해보십시오 –

답변

2

당신은 order by의 배열을 반복 할 수 있습니다 :

SELECT * 
FROM target_table 
WHERE id IN (4, 2, 6, 1) 
ORDER BY field(id, 4, 2, 6, 1); 

한 번만 숫자를 나열 할 경우, select 목록에 값을 넣어 having 사용할 수 있습니다

SELECT t.*, field(id, 4, 2, 6, 1) as ival 
FROM target_table t 
HAVING ival > 0 
ORDER BY ival;