MySQL 에서 쿼리를 짜다 보면 IN() 으로 던져 준 순서대로 값을 얻어오고 싶을 때가 있습니다.
아래와 같은 쿼리를 던지면 2, 1, 3 순서대로 오지 않고 자료의 id 순으로 정렬이 되어 옵니다.
SELECT * FROM [테이블명] WHERE [컬럼명] IN (2, 1, 3)
FIELD 를 사용하면 지정한 순서대로 데이터를 가져올 수 있습니다.
ORDER BY FIELD(id, 2, 1, 3)
예를 들어 다음과 같이 쿼리를 짜면 원하는 순서로 값을 얻을 수 있습니다.
SELECT * FROM [테이블명] WHERE _id IN (2, 1, 3) ORDER BY FIELD(_id, 2, 1, 3)