LIMIT 과 OFFSET을 이용한 페이징

황인우·2025년 2월 14일

1. LIMIT

결과에서 가져올 행의 최대 갯수를 지정한다.

예를 들어, 아래의 쿼리는 videos 테이블의 조회수 높은 5개만 반환한다.

SELECT * FROM videos ORDER BY views DESC LIMIT 5;

2. OFFSET

조회할 데이터의 시작 위치를 지정한다.

아래 쿼리는 처음 5개의 행을 건너뛰고 나머지 모든 행을 반환한다.

SELECT * FROM users OFFSET 5;

3. 페이징

행들을 건너뛰는 OFFSET 과 결과 수를 제한하는 LIMIT을

함께 사용하면 페이징 기능을 만들 수 있다.

SELECT * FROM products ORDER BY id LIMIT (size) OFFSET ((page-1) * size);

위의 쿼리의 경우, size를 10으로 설정하면 이런 페이징 된 결과가 조회된다.

  • 1 페이지 (LIMIT 10 OFFSET 0) : 1번부터 10번 제품
  • 2 페이지 (LIMIT 10 OFFSET 10) : 11번부터 20번 제품
  • 3 페이지 (LIMIT 10 OFFSET 20) : 21번부터 30번 제품
  • 4 페이지 (LIMIT 10 OFFSET 30) : 31번부터 40번 제품
  • ...

0개의 댓글