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

MySQL에서 하위 n개 레코드를 선택하는 방법 (ORDER BY DESC + LIMIT)

MySQL에서 테이블의 하위(bottom) n개 레코드를 조회하고 싶다면 ORDER BY 절과 LIMIT 절을 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable724 (Value int);
Query OK, 0 rows affected (0.79 sec)

2. 레코드 삽입하기

INSERT 명령을 사용하여 테이블에 여러 개의 레코드를 추가합니다.

mysql> insert into DemoTable724 values(101);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable724 values(183);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable724 values(983);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable724 values(234);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable724 values(755);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable724 values(435);
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable724 values(675);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable724 values(345);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable724 values(948);
Query OK, 1 row affected (0.14 sec)

3. 전체 레코드 확인하기

SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable724;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-------+
| Value |
+-------+
| 101   |
| 183   |
| 983   |
| 234   |
| 755   |
| 435   |
| 675   |
| 345   |
| 948   |
+-------+
9 rows in set (0.00 sec)

4. 하위 n개 레코드 선택하기

하위 n개의 레코드를 선택하는 핵심 쿼리는 다음과 같습니다. 여기서는 값을 기준으로 내림차순(DESC) 정렬한 후 LIMIT으로 상위 4개만 가져오도록 했습니다. 이렇게 하면 원래 데이터에서 마지막 4개의 레코드, 즉 가장 작은 값들을 순서대로 얻을 수 있습니다.

mysql> select *from DemoTable724 order by Value DESC LIMIT 0,4;

실행 결과는 다음과 같습니다.

+-------+
| Value |
+-------+
| 983   |
| 948   |
| 755   |
| 675   |
+-------+
4 rows in set (0.00 sec)

정리

ORDER BY 컬럼명 DESC LIMIT 시작_인덱스, 개수 형태로 쿼리를 작성하면 손쉽게 하위 n개 레코드를 조회할 수 있습니다. LIMIT의 첫 번째 인자는 건너뛸 행 수(offset), 두 번째 인자는 가져올 행 수를 의미하므로, 필요에 따라 offset 값을 조절하여 원하는 범위의 데이터를 자유롭게 추출할 수 있습니다.