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

MySQL에서 여러 열을 기준으로 정렬된 결과를 얻는 방법

ORDER BY 절에 여러 열 지정하기

MySQL에서 정렬된 출력을 얻으려면 ORDER BY 절을 사용합니다. 만약 하나의 열이 아닌 여러 열을 기준으로 데이터를 정렬하고 싶다면, ORDER BY 절에 쉼표(,)로 구분하여 여러 개의 열 이름을 나열하면 됩니다.

이때 MySQL은 먼저 첫 번째로 지정된 열을 기준으로 오름차순(기본값) 정렬을 수행한 뒤, 첫 번째 열의 값이 동일한 행들에 대해서만 두 번째 열을 기준으로 다시 정렬합니다. 이 원리를 이해하면 복잡한 조건의 정렬도 손쉽게 처리할 수 있습니다.

다음 예제는 Student 테이블의 데이터를 Name 열을 기준으로 먼저 정렬하고, Name이 같은 경우에는 Address 열을 기준으로 추가 정렬하는 방법을 보여줍니다.

mysql> Select * from Student ORDER BY Name, Address;

+------+---------+---------+-----------+
| Id   | Name    | Address | Subject   |
+------+---------+---------+-----------+
| 2    | Aarav   | Mumbai  | History   |
| 1    | Gaurav  | Delhi   | Computers |
| 15   | Harshit | Delhi   | Commerce  |
| 17   | Raman   | Shimla  | Computers |
+------+---------+---------+-----------+

4 rows in set (0.12 sec)

결과 분석

위 쿼리의 실행 결과를 살펴보면, 모든 행이 먼저 Name 열의 알파벳 순서(Aarav → Gaurav → Harshit → Raman)대로 정렬되어 있는 것을 확인할 수 있습니다. 이 예제에서는 Name 값이 모두 고유하기 때문에 두 번째 기준인 Address 열까지 적용될 필요가 없었습니다.

참고 사항

  • 각 열마다 개별적으로 ASC(오름차순) 또는 DESC(내림차순)를 지정할 수 있습니다. 예: ORDER BY Name ASC, Address DESC
  • 정렬 방향을 명시하지 않으면 기본적으로 오름차순(ASC)이 적용됩니다.
  • 여러 열 정렬은 첫 번째 열에 중복된 값이 많을 때 특히 유용합니다.