순간을 기록으로

[MySQL] 복수의 열로 여러번 정렬하기 본문

Computer Science/Database

[MySQL] 복수의 열로 여러번 정렬하기

luminous13 2021. 11. 11. 16:16

만약 나이 순으로 정렬을 한 담에 이름순으로 정렬을 하려면 어떻게 해야될까요? 그럴땐 ORDERY BY 나이 [ASC|DESC], 이름 [ASC|DESC]으로 하면됩니다.

 

SELECT 열명 FROM 테이블명 WHERE 조건식 ORDERBY 열명1 [ASC | DESC], 열명2 [ASC|DESC]

 

예시 테이블

 

sample32 테이블

CASE1. a열을 오름차순으로 정렬하고 b열도 오름차순으로 정렬하여 조회하기

다음과 같이 a가 먼저 정렬되고 그 담에 b가 정렬됨을 알 수 있습니다. 오름차순의 경우 따로 열명 뒤에다가 정렬 방법을 지정하지 않아도 됩니다. 디폴트로 오름차순으로 되어있습니다. 하지만 만약 내림차순으로 하고 싶다면 명시적으로 작성해야 합니다.

 

CASE2. 반대로 b열을 먼저 오름차순으로 정렬하고, a열을 오름차순으로 정렬하기

 

NULL 값이 있는 열의 정렬은 어떻게 될까?

NULL은 값이 아니기 때문에 비교할 수 없어 별도의 방법으로 정렬합니다. 데이터베이스 마다 다르지만 MySQL의 경우 NULL을 가장 작은 값으로 취급합니다. 그래서 오름차순으로 정렬하게 되면 가장 먼저 표시됩니다.

Comments