ORDER BY
절의 작동 방식과 FIELD()
함수의 작동 방식을 이해합니다 . 내가 이해하고 싶은 것은 두 가지가 함께 작동하여 정렬하는 방법입니다. 행은 어떻게 검색되고 정렬 순서는 어떻게 파생됩니까?
+----+---------+
| id | name |
+----+---------+
| 1 | stan |
| 2 | kyle |
| 3 | kenny |
| 4 | cartman |
+----+---------+
SELECT * FROM mytable WHERE id IN (3,2,1,4) ORDER BY FIELD(id,3,2,1,4)
위의 쿼리는
+----+---------+
| id | name |
+----+---------+
| 3 | kenny |
| 2 | kyle |
| 1 | stan |
| 4 | cartman |
+----+---------+
ORDER BY 3, 2, 1, 4와 비슷한 말
질문
- 내부적으로 어떻게 작동합니까?
- MySQL은 어떻게 행을 가져오고 정렬 순서를 계산합니까?
- MySQL은 id 열을 기준으로 정렬해야한다는 것을 어떻게 알 수 있습니까?
SELECT *, FIELD(id,3,2,1,4) AS f FROM mytable WHERE id IN (3,2,1,4);
그런 다음 추가ORDER BY f
또는ORDER BY FIELD(id,3,2,1,4)
다시 시도하십시오.