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

MySQL에서 상위 10개 레코드를 선택하는 방법 – LIMIT 절 완벽 가이드

MySQL에서 상위 10개 레코드만 조회하고 싶다면 LIMIT 절을 사용하면 됩니다. LIMIT 절은 반환되는 행의 개수를 제한해 주기 때문에, 대량의 데이터 중에서 필요한 만큼만 효율적으로 가져올 때 매우 유용합니다.

실제 동작 과정을 예제를 통해 단계별로 살펴보겠습니다.

1단계: 테이블 생성하기

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

mysql> create table DemoTable
-> (
-> PageNumber text
-> );
Query OK, 0 rows affected (2.50 sec)

2단계: 샘플 데이터 삽입하기

INSERT 명령어를 사용하여 테이블에 레코드를 삽입합니다.

mysql> insert into DemoTable values('Page-1');
Query OK, 1 row affected (0.46 sec)

mysql> insert into DemoTable values('Page-2');
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable values('Page-3');
Query OK, 1 row affected (0.27 sec)

mysql> insert into DemoTable values('Page-4');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('Page-5');
Query OK, 1 row affected (0.27 sec)

mysql> insert into DemoTable values('Page-6');
Query OK, 1 row affected (1.12 sec)

mysql> insert into DemoTable values('Page-7');
Query OK, 1 row affected (1.21 sec)

mysql> insert into DemoTable values('Page-8');
Query OK, 1 row affected (1.15 sec)

mysql> insert into DemoTable values('Page-9');
Query OK, 1 row affected (0.89 sec)

mysql> insert into DemoTable values('Page-10');
Query OK, 1 row affected (1.20 sec)

mysql> insert into DemoTable values('Page-11');
Query OK, 1 row affected (0.86 sec)

mysql> insert into DemoTable values('Page-12');
Query OK, 1 row affected (0.39 sec)

mysql> insert into DemoTable values('Page-13');
Query OK, 1 row affected (0.39 sec)

mysql> insert into DemoTable values('Page-14');
Query OK, 1 row affected (0.47 sec)

3단계: 전체 레코드 확인하기

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

mysql> select *from DemoTable;

출력 결과

+------------+
| PageNumber |
+------------+
| Page-1 |
| Page-2 |
| Page-3 |
| Page-4 |
| Page-5 |
| Page-6 |
| Page-7 |
| Page-8 |
| Page-9 |
| Page-10 |
| Page-11 |
| Page-12 |
| Page-13 |
| Page-14 |
+------------+
14 rows in set (0.00 sec)

테이블에는 총 14개의 레코드가 저장되어 있습니다. 이제 여기서 상위 10개만 추출해 보겠습니다.

4단계: LIMIT 절로 상위 10개 레코드 조회하기

다음은 LIMIT 절을 활용하여 상위 10개 레코드만 선택하는 쿼리입니다.

mysql> select *from DemoTable limit 0,10;

출력 결과

+------------+
| PageNumber |
+------------+
| Page-1 |
| Page-2 |
| Page-3 |
| Page-4 |
| Page-5 |
| Page-6 |
| Page-7 |
| Page-8 |
| Page-9 |
| Page-10 |
+------------+
10 rows in set (0.00 sec)

LIMIT 구문 이해하기

LIMIT 0, 10 구문의 의미는 다음과 같습니다.

  • 첫 번째 숫자(0): 시작 위치(오프셋)를 나타냅니다. 0은 첫 번째 레코드부터 시작한다는 의미입니다.
  • 두 번째 숫자(10): 반환할 최대 행 개수를 지정합니다.

즉, 위 쿼리는 첫 번째 레코드부터 10개의 행을 가져옵니다. 오프셋이 0일 경우에는 LIMIT 10처럼 숫자 하나만 작성해도 동일한 결과를 얻을 수 있습니다. 또한 OFFSET 값을 조절하면 특정 범위의 데이터를 가져오는 페이지네이션(pagination) 기능도 손쉽게 구현할 수 있습니다.