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

MySQL에서 여러 열(다중 열)을 기준으로 정렬하는 방법

MySQL에서는 ORDER BY 절에 여러 개의 열을 쉼표로 구분하여 나열함으로써 다중 열 정렬을 손쉽게 수행할 수 있습니다. 이 글에서는 테이블 생성부터 데이터 삽입, 그리고 실제 정렬 쿼리 실행까지 단계별 예제와 함께 자세히 살펴보겠습니다.

1단계: 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> Id int,
    -> Value int
    -> );
Query OK, 0 rows affected (0.68 sec)

2단계: 데이터 삽입

INSERT 명령을 사용해 테이블에 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable values(100,85885);
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values(101,885995474);
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values(100,895943);
Query OK, 1 row affected (0.20 sec)

3단계: 전체 레코드 조회

SELECT 문을 사용해 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

위 쿼리는 다음과 같은 출력 결과를 생성합니다.

+------+-----------+
| Id   | Value     |
+------+-----------+
|  100 |     85885 |
|  101 | 885995474 |
|  100 |    895943 |
+------+-----------+
3 rows in set (0.00 sec)

단일 열 기준 정렬

다음은 Value 열을 기준으로 내림차순(DESC) 정렬하는 쿼리입니다.

mysql> select Id,Value from DemoTable order by Value DESC;

실행 결과는 아래와 같습니다.

+------+-----------+
| Id   | Value     |
+------+-----------+
|  101 | 885995474 |
|  100 |    895943 |
|  100 |     85885 |
+------+-----------+
3 rows in set (0.00 sec)

진짜 다중 열 정렬하기

여러 열을 동시에 정렬하려면 ORDER BY 절에 열 이름을 쉼표로 구분하여 나열하고, 각 열마다 오름차순(ASC) 또는 내림차순(DESC)을 지정하면 됩니다. MySQL은 첫 번째 열을 기준으로 먼저 정렬한 뒤, 같은 값이 있을 경우 두 번째 열을 기준으로 정렬합니다.

예를 들어 Id는 오름차순으로, 같은 Id 내에서는 Value를 내림차순으로 정렬하려면 다음과 같이 작성합니다.

mysql> select Id,Value from DemoTable order by Id ASC, Value DESC;

실행 결과는 아래와 같습니다.

+------+-----------+
| Id   | Value     |
+------+-----------+
|  100 |    895943 |
|  100 |     85885 |
|  101 | 885995474 |
+------+-----------+
3 rows in set (0.00 sec)

이처럼 ORDER BY 절을 활용하면 하나 또는 여러 개의 열을 원하는 순서대로 자유롭게 정렬할 수 있습니다. 참고로 ASC는 기본값이므로 생략해도 되며, DESC만 명시적으로 지정하면 됩니다.