- LIMIT, OFFSET 과 동시에 전체 행의 개수를 가져오고 싶을 때
- MySQL
- FOUND_ROWS 로 직전 쿼리 결과에서 발견한 모든 행의 수를 가져올 수 있다.
SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10; SELECT FOUND_ROWS();
SELECT stuff, count(*) OVER() AS total_count FROM table WHERE condition ORDER BY stuff OFFSET 40 LIMIT 20
- Cursor 기반으로 페이지네이션을 수행하는데 현재 가져온 결과가 마지막 결과인지 확인하기
- 예를 들어 아래와 같은 쿼리가 있다고 가정해보자.
SELECT * FROM tbl WHERE tbl.id >= 22 limit 10
{ "items: [ ... ] "isLastQuery": true }
limit + 1
만큼 쿼리를 날리고 가져온 행의 개수를 비교해보는 것이다. limit이 10개라고 가정하면, 11을 limit 으로 설정하고 쿼리를 실행한다.SELECT * FROM tbl WHERE tbl.id >= 22 limit 11
요약
요약: X