Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

결과 집합에 없는 열을 기준으로 MySQL 출력을 정렬하는 방법

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)나 생성 순서를 나타내는 열을 기준으로 정렬할 때 유용하게 활용됩니다.