허당 레몬도리

status 필드가 있는데
where status in ('active', 'approved', 'rejected', 'submitted') 와 같이 넣었을때
기본키 등의 order by 에 영향을 받은 sorting 이 되게 된다.

결과를 기본 sorting 영향이 아닌
자신만의 순서로 받고 싶은경우
아래와 같이 Order by Case 문으로 해결 가능하다.



http://stackoverflow.com/questions/3892406

When 조건 Then 순서번호

Use a CASE expression (SQL Server 2005+):

ORDER BY CASE status
           WHEN 'active' THEN 1
           WHEN 'approved' THEN 2
           WHEN 'rejected' THEN 3
           WHEN 'submitted' THEN 4
           ELSE 5
         END

You can use this syntax for more complex evaluation (including combinations, or if you need to use LIKE)

ORDER BY CASE 
           WHEN status LIKE 'active' THEN 1
           WHEN status LIKE 'approved' THEN 2
           WHEN status LIKE 'rejected' THEN 3
           WHEN status LIKE 'submitted' THEN 4
           ELSE 5
         END

MySQL에서는 FIELD() 함수로 간단하게 해결 가능!

출처 : http://itzone.tistory.com/386 

profile

허당 레몬도리

@LemonDory

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!