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

MySQL에서 단일 쿼리로 여러 열을 정렬하는 방법

MySQL에서는 ORDER BY 절을 사용하여 하나의 쿼리만으로 여러 열을 기준으로 데이터를 정렬할 수 있습니다. 각 열마다 오름차순(ASC) 또는 내림차순(DESC)을 개별적으로 지정할 수 있으며, 첫 번째 열의 값이 같을 경우 두 번째 열을 기준으로 정렬됩니다.

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)

4. 열 정렬 쿼리 실행하기

다음은 ORDER BY 절을 활용한 정렬 쿼리입니다. 아래 예제에서는 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)

여러 열을 동시에 정렬하는 방법

두 개 이상의 열을 기준으로 정렬하려면 열 이름을 쉼표(,)로 구분하여 나열하고, 각 열의 정렬 방향을 지정하면 됩니다.

SELECT * FROM DemoTable ORDER BY Id ASC, Value DESC;

위 쿼리는 먼저 Id 열을 오름차순으로 정렬한 뒤, Id 값이 동일한 행들에 대해서는 Value 열을 내림차순으로 정렬합니다. 이처럼 ORDER BY 절에 여러 열을 조합하면 복잡한 정렬 조건도 단일 쿼리로 손쉽게 처리할 수 있습니다.