더 나은 프로그래머가 되자

order by 조건문(case) 본문

데이터베이스/MYSQL

order by 조건문(case)

greathuman 2020. 9. 28. 16:50

order by 절에서 단순히 오름차순,내림차순이 아닌 직접 정렬순서를 지정하고 싶을때에는
CASE 구문을 사용하면 된다.

1.
select * from 테이블
order by
case when subject like '%연필%'   then 1
          when subject like '%지우개%' then 2
              else 3
        end

--> subject 필드의 값이 연필인 레코드가 1순위,
                         지우개인 레코드는 2순위,
                         나머지 레코드는 3순위으로 정렬되어 노출된다.

2.
SELECT * FROM 테이블
order by
(
CASE agree
WHEN 'Y' THEN 1
ELSE 3 END
),      number desc

--> agree 필드의 값이 'Y'인 경우 1순위로 노출되도록 하고
     추가로 하는 정렬은 number의 내림차순으로 정렬한다.

ex ) agree | date
      Y      |  777
      Y      |  666
      Y      |  555
      N     |  777
      N     |  666

 

출처 : min-mo.blogspot.com/2017/11/mysql-orderby-case.html

 

 

 

3. 간단한 order by 조건문(요건 내가 직접 작성)

select * from 테이블 order by 필드명 = '데이터' asc

=> 해당 조건에 부합하는 데이터가 오름차순으로 소팅 부합하지 않는 데이터는 그 다음 소팅된다

Comments