기본 문법
LIMIT는 SELECT 결과에서 반환할 행 수를 제한하는 구문 WHERE와 ORDER BY 뒤, 즉 SELECT 문 끝에 위치
두 가지 형태 사용
SELECT 컬럼명
FROM 테이블명
LIMIT 개수
SELECT 컬럼명
FROM 테이블명
LIMIT 개수 OFFSET 시작_인덱스
일부 dialect에서는 아래 축약형도 존재
-- MySQL, SQLite
SELECT 컬럼명
FROM 테이블명
LIMIT 시작_인덱스, 개수
1. LIMIT 개수
LIMIT 뒤 숫자는 인덱스가 아닌 개수
SELECT *
FROM Book
LIMIT 1
현재 정렬 기준에서 맨 위 행 1개만 반환 ORDER BY가 없으면 반환되는 행은 비결정적일 수 있음
2. LIMIT 개수 OFFSET 시작
OFFSET은 0부터 시작 다음 예시는 4번째 행부터 1개 반환
SELECT *
FROM Book
LIMIT 1 OFFSET 3
3. OFFSET 생략 문법
아래 형태는 시작 인덱스와 개수를 쉼표로 전달
-- MySQL, SQLite 전용
SELECT *
FROM Book
LIMIT 1, 3
1번 인덱스부터 3개의 행 반환 PostgreSQL 등에서는 이 문법 미지원이므로 LIMIT 개수 OFFSET 시작 형태 사용
주의
- ORDER BY 없이 LIMIT만 사용하면 결과 순서 보장 안 됨
- 큰 OFFSET은 비용 증가 위험, 대량 페이징에서는 정렬 키 기반 커서 방식 고려
- OFFSET은 0부터 시작, 오프바이원 실수 주의