MySQL, 페이징할 때 테이블 긁는 쿼리 하나로 전체 개수까지 받아 오기(SQL_CALC_FOUND_ROWS)

아래처럼 하면 된다.

SELECT SQL_CALC_FOUND_ROWS * FROM article ORDER BY id DESC LIMIT 0, 10;
SELECT FOUND_ROWS();

위의 것은 내용을 가져 오는 쿼리고, 아래 것은 LIMIT 없이 실행했을 경우의 전체 개수를 받는 쿼리다.

보면 알겠지만 SELECT하는 필드 앞에 SQL_CALC_FOUND_ROWS라는 키워드를 적어 준 게 핵심이다. 그렇게 하면 MySQL이 전체 개수를 기억해 뒀다가 SELECT FOUND_ROWS()를 실행하면 방금 찾은 게 몇 개였는지 알려 주는 것이다.

카테고리

17년차 풀스택 웹 개발자 안형우입니다

웹 개발에서도 중요한 것은 개념입니다.
이 블로그에는 제가 개발하며 익힌 개념들을 정리합니다.

워드프레스를 오래 다뤄 왔고 강의도 두 편 찍었습니다.
– 인프런 “워드프레스 제대로 개발하기 어드민 편, 클라이언트 편
– 클래스101 “누구나 할 수 있는 워드프레스 홈페이지 만들기 – 기획부터 출시까지 한 방에 OK

유튜브 채널에 워드프레스 관련 팁들을 올리고 있습니다.

👉 소개 더 보기

대표글

댓글 남기기