문법
SELECT 컬럼명 FROM 테이블명
LIMIT 페이지당데이터수 OFFSET 시작_위치;
SELECT * FROM tbl_board
LIMIT 10 OFFSET 0; -- 첫 번째 페이지
SELECT * FROM tbl_board
LIMIT 10 OFFSET 10; -- 두 번째 페이지
SELECT * FROM tbl_board
LIMIT 10 OFFSET 20; -- 세 번째 페이지
10개의 레코드를 한 페이지로 보여주는 쿼리이다.
SET @page = 1; -- 페이지 번호
SET @pageSize = 10; -- 페이지 당 레코드 수
SELECT * FROM tbl_board
LIMIT @pageSize OFFSET (@page - 1) * @pageSize;
-- 인덱스 생성
CREATE INDEX idx_id ON tbl_board(id);
-- 페이지 설정
SET @page = 3; -- 페이지 번호
SET @pageSize = 10; -- 페이지당 레코드 수
-- 서브쿼리를 활용한 페이징
SELECT * FROM tbl_board
WHERE id > (
SELECT id FROM tbl_board ORDER BY id LIMIT @pageSize * (@page - 1), 1
)
ORDER BY id
LIMIT @pageSize;