MySQL에서 내림차순 정렬과 LIMIT 절 활용하기
MySQL에서 결과를 내림차순으로 정렬하려면 DESC 키워드를 사용합니다. 여기에 LIMIT 절을 함께 사용하면 정렬된 결과 중 원하는 개수만큼의 레코드만 가져올 수 있습니다.
기본 문법은 다음과 같습니다:
SELECT * FROM yourTableName ORDER BY yourColumnName DESC LIMIT yourLimitNumber;
이제 실제 예제를 통해 단계별로 살펴보겠습니다.
1단계: 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable (Id int, Name varchar(100)); Query OK, 0 rows affected (0.73 sec)
2단계: 데이터 삽입
INSERT 명령어를 사용하여 테이블에 샘플 데이터를 입력합니다.
mysql> insert into DemoTable values(100,'John'); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(101,'Chris'); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(102,'Robert'); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable values(103,'Bob'); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(104,'Adam'); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable values(105,'James'); Query OK, 1 row affected (0.18 sec)
3단계: 전체 레코드 조회
SELECT 문을 사용하여 테이블의 모든 레코드를 확인해 보겠습니다.
mysql> select *from DemoTable;
출력 결과
+------+--------+ | Id | Name | +------+--------+ | 100 | John | | 101 | Chris | | 102 | Robert | | 103 | Bob | | 104 | Adam | | 105 | James | +------+--------+ 6 rows in set (0.00 sec)
4단계: 내림차순으로 고정된 개수의 레코드 가져오기
Name 열을 기준으로 내림차순 정렬한 후, 상위 3개의 레코드만 조회하는 쿼리입니다.
mysql> select *from DemoTable order by Name DESC LIMIT 3;
출력 결과
+------+--------+ | Id | Name | +------+--------+ | 102 | Robert | | 100 | John | | 105 | James | +------+--------+ 3 rows in set (0.00 sec)
위 결과에서 확인할 수 있듯이, 이름이 알파벳 역순(R → J)으로 정렬되었으며 LIMIT 3에 의해 딱 3개의 레코드만 반환되었습니다. 이처럼 ORDER BY ... DESC와 LIMIT를 조합하면 최신 게시글 상위 N개 조회, 인기 항목 순위 출력 등 다양한 상황에서 유용하게 활용할 수 있습니다.