2012-03-29 2 views
5

현재 MySQL 데이터베이스 테이블에서 일부 데이터를 가져오고 있습니다.하지만 문제는 쿼리가 실행될 때마다 기본적으로 MySQL이 자동 생성 된 결과에 따라 정렬합니다. id는 필드 이름 [id]입니다. 나는 분류되고 싶지 않다. 내 경우 :MySQL에서 결과를 정렬하지 않기를 원합니다

$keys = array(4, 1, 7, 8, 2, 5, 6); 
$strKeys = implode(',', $keys); 
$result = mysql_query('SELECT * FROM tableName WHERE id in('.$strKeys.')'); 

나는 $ 키가 어떻게 생겼는지부터 순서대로 결과를 원하는 : 실제로 4, 1, 7, 8, 2, 5, 6 하지만를, 그 결과에 의해 정렬 된 순서로 나온다 [id] : 1, 2, 4, 5, 6, 7, 8

결과를 얻고 $ 키의 순서대로 표시하는 방법.

+0

가장 쉬운 방법은 배열을 정렬하거나 id로 인덱스를 만든 다음 $ 키를 사용하여 루프를 반복하는 것입니다. – Corbin

+1

가능한 복제본 [어떻게 SELECT WHERE IN()?]을 사용하여 주문을 유지합니까? (http://stackoverflow.com/questions/2813884/how-do-you-keep-the-order-using-select-where-) –

+0

와우! 그 기능이 존재한다는 것을 결코 알지 못했습니다. >. < – Corbin

답변

9

시도해 볼 수 있습니다.

SELECT * FROM tableName WHERE id in (4, 1, 7, 8, 2, 5, 6) order by find_in_set(id, '4, 1, 7, 8, 2, 5, 6'); 
+0

예, 작동합니다! 대단히 감사합니다. 나는 전에 이것을 결코 알지 못했다. – Thavarith

관련 문제