타임스탬프(DATE 타입)와 ENUM 타입 컬럼을 함께 정렬하려면 ORDER BY 절에서 각각의 컬럼을 지정하면 됩니다. 예제를 통해 알아보겠습니다.
테이블 생성 및 데이터 삽입
mysql> CREATE TABLE DemoTable (
-> JoiningDate DATE,
-> Status ENUM('Good','Excellent','Bad')
-> );
Query OK, 0 rows affected (0.58 sec)
mysql> INSERT INTO DemoTable VALUES('2019-01-21','Excellent');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable(Status) VALUES('Bad');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable(Status) VALUES('Good');
Query OK, 1 row affected (0.13 sec)
데이터 조회
mysql> SELECT * FROM DemoTable;
+-------------+-----------+ | JoiningDate | Status | +-------------+-----------+ | 2019-01-21 | Excellent | | NULL | Bad | | NULL | Good | +-------------+-----------+ 3 rows in set (0.00 sec)
타임스탬프와 ENUM으로 정렬
mysql> SELECT * FROM DemoTable
-> ORDER BY DATE(JoiningDate) ASC, Status ASC;
+-------------+-----------+ | JoiningDate | Status | +-------------+-----------+ | NULL | Good | | NULL | Bad | | 2019-01-21 | Excellent | +-------------+-----------+ 3 rows in set (0.00 sec)
핵심 포인트: DATE() 함수는 DATE 타입 컬럼에서 날짜 부분만 추출하며, NULL 값은 정렬 시 가장 먼저 또는 마지막으로 옵니다(기본적으로 ASC에서 먼저). ENUM 값은 정의된 순서('Good', 'Excellent', 'Bad')대로 정렬됩니다.