2011-03-08 2 views
1

이 변수는PHP는/MySQL은 주어진 ID로 순서를 선택

$id = 12;

임의의 순서로 내 테이블에서 모든 행을 선택하지만 id = 12 인 행을 첫 번째 결과로 선택하려고합니다. 어떻게해야합니까?

+0

가능한 중복 (http://stackoverflow.com/questions/3748688/search-result-in-presented-in-specific-order) – ajreal

답변

2
SELECT ... ORDER BY id = 12 DESC, id 
[특정 순서로 제시의 검색 결과?]의
+1

그냥 추가 설명에서'id = 12'는 부울 결과 ('TRUE' 또는'FALSE')가있는 각 행에 대해 평가되고'FALSE'는'TRUE'보다 먼저 정렬되기 때문에'DESC'는 순서를 바꾸어 행 'id = 12'는 먼저 TRUE를 반환합니다. – jswolf19

+0

전에는 본 적이 없어요. 멋지다. 작동합니다. –

+0

MySQL에서 TRUE는 정수 1로 식별되고 FALSE는 정수 0으로 식별됩니다. – Hammerite

2

먼저 ID가 12 인 항목을 선택한 다음 다른 항목 (ID! = 12)을 선택할 수 있습니다. id에 대한 인덱스를 사용하면 전체 테이블을 한 번만 요구하는 것보다 느려서는 안됩니다.

관련 문제