MySQL에서 데이터를 높은 값부터 낮은 값(내림차순)으로 정렬하려면 ORDER BY DESC 명령어를 사용하면 됩니다.
SELECT * FROM yourTableName ORDER BY yourColumnName DESC;
반대로 낮은 값부터 높은 값(오름차순)으로 정렬하고 싶다면 ORDER BY ASC 명령어를 사용합니다.
SELECT * FROM yourTableName ORDER BY yourColumnName ASC;
실습용 테이블 생성하기
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
Value int
);
Query OK, 0 rows affected (0.56 sec)레코드 삽입하기
INSERT 명령어를 사용해 테이블에 데이터를 입력합니다.
mysql> insert into DemoTable values(134); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable values(245); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(451); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(1090); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable values(789); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable values(434); Query OK, 1 row affected (0.22 sec)
저장된 데이터 확인하기
SELECT 명령어로 테이블의 전체 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+-------+ | Value | +-------+ | 134 | | 245 | | 451 | | 1090 | | 789 | | 434 | +-------+ 6 rows in set (0.00 sec)
Case 1: 내림차순 정렬 (높은 값 → 낮은 값)
ORDER BY ... DESC를 사용하면 가장 큰 값이 맨 위에 오도록 정렬됩니다.
mysql> select *from DemoTable order by Value DESC;
실행 결과는 다음과 같습니다.
+-------+ | Value | +-------+ | 1090 | | 789 | | 451 | | 434 | | 245 | | 134 | +-------+ 6 rows in set (0.07 sec)
Case 2: 오름차순 정렬 (낮은 값 → 높은 값)
ORDER BY ... ASC를 사용하면 가장 작은 값이 맨 위에 오도록 정렬됩니다.
mysql> select *from DemoTable order by Value ASC;
실행 결과는 다음과 같습니다.
+-------+ | Value | +-------+ | 134 | | 245 | | 434 | | 451 | | 789 | | 1090 | +-------+ 6 rows in set (0.00 sec)
정리
MySQL의 ORDER BY 절은 기본적으로 오름차순(ASC)으로 동작합니다. 따라서 ASC는 생략할 수 있으며, 내림차순으로 정렬하고 싶을 때만 DESC 키워드를 명시하면 됩니다. 숫자형 컬럼뿐 아니라 날짜, 문자열 컬럼에도 동일하게 적용할 수 있어 게시글 최신순 정렬, 가격 높은순 정렬 등 다양한 상황에서 유용하게 활용됩니다.