MySQL에서는 SELECT 문으로 조회한 결과 집합에 포함되지 않은 열을 기준으로도 출력을 정렬할 수 있습니다. 방법은 매우 간단합니다. SELECT 절에는 화면에 표시하고 싶은 필드만 지정하고, ORDER BY 절에는 실제 정렬 기준이 될 열의 이름을 작성하면 됩니다.
기본 정렬 예제
다음 예제는 Student 테이블에서 'Name'과 'Subject' 두 필드만 조회하면서, 결과 집합에는 나타나지 않는 'Id' 열을 기준으로 결과를 정렬하는 모습을 보여줍니다.
mysql> Select Name, Subject From Student ORDER BY Id; +---------+-----------+ | Name | Subject | +---------+-----------+ | Gaurav | Computers | | Aarav | History | | Harshit | Commerce | | Raman | Computers | +---------+-----------+ 4 rows in set (0.00 sec)
출력 결과를 보면 Name과 Subject만 표시되었지만, 실제 정렬은 Id 값의 순서(오름차순)에 따라 이루어진 것을 확인할 수 있습니다.
DESC, ASC 키워드로 정렬 방향 지정하기
ORDER BY 절에는 DESC(내림차순) 또는 ASC(오름차순) 키워드를 함께 사용하여 정렬 방향을 자유롭게 지정할 수도 있습니다. 다음은 동일한 쿼리를 Id 열 기준 내림차순으로 정렬한 예제입니다.
mysql> Select Name, Subject from Student ORDER BY Id DESC; +---------+-----------+ | Name | Subject | +---------+-----------+ | Raman | Computers | | Harshit | Commerce | | Aarav | History | | Gaurav | Computers | +---------+-----------+ 4 rows in set (0.00 sec)
이처럼 ORDER BY 절에 결과 집합에 없는 열을 지정하기만 하면, 화면에 보이는 데이터와 무관하게 원하는 기준으로 손쉽게 정렬된 결과를 얻을 수 있습니다. 특히 기본 키(PK)나 생성 순서를 나타내는 열을 기준으로 정렬할 때 유용하게 활용됩니다.