WEB에서 페이징 작업 중 해당 테이블을 조회 했을때의 총 갯수를 구해야 하는 경우가 생긴다.
보통
SELECT COUNT(*) FROM 테이블1
조건이 있으면 WHERE
으로 찾아왔었는데
SQL에서 제공해주는 기능이 있어서 사용해봤더니 엄청 편해서 적어본다.
FOUND_ROWS()라는
함수를 사용하면 이 쿼리를 실행전에 사용했던
쿼리에 조회된 ROW수를 COUNT해서 구해준다.
SELECT * FORM 테이블1 했을 경우 조회된 수가 = 25개
WHERE 조건1 = 1 했을경우 조회된 수가 20개
면
SELECT FOUND_ROWS() 를 하면
FOUND_ROWS = 25, 20개 이런식으로 그전에 조회됐던 데이터의 갯수가 나온다.
개꿀이다.
LIMIT를 사용 하더라도 SQL_CALC_FOUND_ROWS 랑 같이 쓴다면
SELECT SQL_CALC_FOUND_ROWS *
FROM 테이블1
LIMIT 10 OFFSET 0
을 하더라도
리미터 전에 조회한 총 ROW수를 가져올 수 있다.
보통
SELECT COUNT(*) FROM 테이블1
조건이 있으면 WHERE
으로 찾아왔었는데
SQL에서 제공해주는 기능이 있어서 사용해봤더니 엄청 편해서 적어본다.
FOUND_ROWS()라는
함수를 사용하면 이 쿼리를 실행전에 사용했던
쿼리에 조회된 ROW수를 COUNT해서 구해준다.
SELECT * FORM 테이블1 했을 경우 조회된 수가 = 25개
WHERE 조건1 = 1 했을경우 조회된 수가 20개
면
SELECT FOUND_ROWS() 를 하면
FOUND_ROWS = 25, 20개 이런식으로 그전에 조회됐던 데이터의 갯수가 나온다.
개꿀이다.
LIMIT를 사용 하더라도 SQL_CALC_FOUND_ROWS 랑 같이 쓴다면
SELECT SQL_CALC_FOUND_ROWS *
FROM 테이블1
LIMIT 10 OFFSET 0
을 하더라도
리미터 전에 조회한 총 ROW수를 가져올 수 있다.
댓글
댓글 쓰기