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

MySQL에서 두 행 사이의 데이터 조회하기 – LIMIT 절 완벽 가이드

MySQL LIMIT으로 특정 행 범위의 데이터 가져오기

MySQL에서 두 행 사이에 있는 데이터를 조회하려면 LIMIT 절을 활용하면 됩니다. LIMIT은 LIMIT 오프셋, 개수 형태로 작성할 수 있어서, 원하는 시작 위치부터 지정한 개수만큼의 행만 간편하게 추출할 수 있습니다. 아래 예제를 통해 단계별로 살펴보겠습니다.

1. 테이블 생성하기

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

mysql> create table DemoTable
   (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name varchar(10)
   );
Query OK, 0 rows affected (0.22 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용해 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable(Name) values('Larry');
Query OK, 1 row affected (0.06 sec)

mysql> insert into DemoTable(Name) values('Robert');
Query OK, 1 row affected (0.05 sec)

mysql> insert into DemoTable(Name) values('Chris');
Query OK, 1 row affected (0.05 sec)

mysql> insert into DemoTable(Name) values('David');
Query OK, 1 row affected (0.04 sec)

mysql> insert into DemoTable(Name) values('Bob');
Query OK, 1 row affected (0.06 sec)

mysql> insert into DemoTable(Name) values('Sam');
Query OK, 1 row affected (0.04 sec)

mysql> insert into DemoTable(Name) values('Mike');
Query OK, 1 row affected (0.06 sec)

mysql> insert into DemoTable(Name) values('Carol');
Query OK, 1 row affected (0.05 sec)

mysql> insert into DemoTable(Name) values('John');
Query OK, 1 row affected (0.05 sec)

3. 전체 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

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

+----+--------+
| Id | Name   |
+----+--------+
| 1  | Larry  |
| 2  | Robert |
| 3  | Chris  |
| 4  | David  |
| 5  | Bob    |
| 6  | Sam    |
| 7  | Mike   |
| 8  | Carol  |
| 9  | John   |
+----+--------+
9 rows in set (0.00 sec)

4. 두 행 사이의 데이터 조회하기

다음은 두 행 사이의 데이터를 가져오는 쿼리입니다.

mysql> select *from DemoTable limit 2,3;

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

+----+-------+
| Id | Name  |
+----+-------+
| 3  | Chris |
| 4  | David |
| 5  | Bob   |
+----+-------+
3 rows in set (0.00 sec)

LIMIT 절 동작 원리 이해하기

LIMIT 2,3에서 첫 번째 숫자인 2는 오프셋(offset)을 의미하며, 오프셋은 0부터 시작합니다. 즉, 앞의 2개 행을 건너뛰고 세 번째 행부터 결과를 가져옵니다. 두 번째 숫자인 3은 반환할 행의 개수를 뜻합니다. 따라서 위 쿼리는 세 번째 행(Id 3, Chris)부터 세 개의 행(Id 3~5)을 반환하게 됩니다.

이처럼 LIMIT 절을 활용하면 대용량 테이블에서도 원하는 구간의 데이터만 효율적으로 조회할 수 있으며, 페이지네이션(pagination) 기능을 구현할 때도 널리 사용됩니다.