2010-03-12 2 views
16

가능한 중복 :SELECT ... WHERE id IN (...) 인 경우 IN()으로 결과를 정렬 하시겠습니까?

SELECT * FROM images WHERE id IN (12,9,15,3,1) 

이 가능 IN 절의 내용으로 결과를 정렬하려면 다음 쿼리 등으로
Ordering by the order of values in a SQL IN() clause

?

[0] => Array 
    (
     [id] => 12 
     [file_name] => foo 
    ) 
[1] => Array 
    (
     [id] => 9 
     [file_name] => bar 
    ) 
[2] => Array 
    (
     [id] => 15 
     [file_name] => baz 
    ) 
... 
+0

+1 좋은 질문 – rodrigoap

+0

매우 흥미로운 질문, 나는 너무 궁금했습니다. – anthares

+0

이것은 좋은 질문 일지 모르지만 그것은 중복입니다 : http://stackoverflow.com/questions/396748/ordering-by-the-order-of-values-in-a-sql-in-clause –

답변

5

IN 절 세트를 정의하고, 수학 세트가 순서가 없습니다 :

내가 찾고 그 결과는 무엇인가처럼 될 것입니다.

는 그러나 FIELD() 기능을 사용하여 MySQL의에 대한 해결 방법이있을 것 같다

+2

예 SQL 쿼리를 조정하여 가능합니다. 참조 : http://stackoverflow.com/questions/396748/ordering-by-the-order-of-values-in-a-sql-in-clause –

+0

@Felix : 팁 주셔서 감사합니다. 더 정확한 답변을 수정했습니다. –

+0

신난다, 고마워! – Jeff