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

MySQL 쿼리로 고정된 개수의 결과를 내림차순으로 조회하는 방법

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 ... DESCLIMIT를 조합하면 최신 게시글 상위 N개 조회, 인기 항목 순위 출력 등 다양한 상황에서 유용하게 활용할 수 있습니다.