MySQL 페이징 처리 및 개수 제한하여 출력: LIMIT, OFFSET

SELECT * FROM member;

member 테이블의 레코드 수가 몇 천 개 있다고 가정해보자. 이 때,위 쿼리를 실행하면 member 테이블에서 모든 레코드가 SELECT될 것이다.

 

만약 우리가 모든 레코드가 아닌 50개 정도만 출력을 하고 싶을 땐 어떻게 하면 될까? 바로 이때 쓰는 것이 limit 이다.

 

SELECT *
FROM 테이블명
WEHERE 조건
LIMIT 행개수 OFFSET 시작행

LIMIT 사용법

// LIMIT 갯수  ---  글번호 1~10
SELECT * FROM 테이블명 LIMIT 10 OFFSET 0;    //OFFSET 생략 가능
SELECT * FROM 테이블명 LIMIT 10;    


// LIMIT 갯수 OFFSET 시작행 --- 글번호 21~30
SELECT * FROM 테이블명 LIMIT 10 OFFSET 20


// LIMIT 시작점, 갯수  ---  글번호 21~30
//첫번째 파라미터는 0 부터 시작하기 때문 
SELECT * FROM 테이블명 LIMIT 20, 10;

LIMIT 응용

SELECT department
FROM member
GROUP BY department
ORDER BY SUM(money) DESC
LIMIT 3;

이런 식으로 활용하면 돈(money)이 많은 회원(member)이 있는 부서(department)의 1,2,3위를 순차적으로 알 수 있다.