티스토리 뷰

목차

    반응형

    오늘은 MySQL에서 null 값을 맨 뒤로 보내는 방법을 소개합니다.


    주의 사항

    이 포스트 내용은 MySQL 특성을 다루므로 다른 데이터베이스 제품과는 차이가 있습니다. 같은 문제여도 대응 방법이 다를 수 있습니다.



    정렬하면 null이 먼저 앞으로 온다

    기본 동작은 정렬 후 null이 앞으로 옵니다. 먼저 만나게 돼요.

    아래와 같이, null 에 대해 아무것도 고려하지 않고 order by (정렬)하면, null이 먼저 표시됩니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    mysql> SELECT id, display_order 
        -> FROM items
        -> ORDER BY display_order;
     
    +----+---------------+
    | id | display_order |
    +----+---------------+
    |  1 |          NULL |
    |  2 |             1 |
    |  3 |             2 |
    |  4 |             3 |
    +----+---------------+
    cs


    이럴 경우 null을 뒤로 보내고 싶을 때 어떻게 할까요? 이게 본 포스팅 주제입니다.


    정렬 시, null 값은 뒤로 보내기

    null이 맨 뒤에 위치하려면 IS NULL ASC 를 사용합니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    mysql> SELECT id, display_order 
        -> FROM items
        -> ORDER BY display_order IS NULL ASC, display_order;
     
    +----+---------------+
    | id | display_order |
    +----+---------------+
    |  2 |             1 |
    |  3 |             2 |
    |  4 |             3 |
    |  1 |          NULL |
    +----+---------------+
    cs


    여기서는 ORDER BY display_order IS NULL ASC를 추가함으로써, null이 맨 뒤로 갑니다.


    마지막으로

    알아두면 mysql 개발 효율이 조금 올라갈지도 몰라 TIP이라고 생각해 포스팅했습니다.


    끝까지 읽어 주셔서 감사합니다!

    반응형