오프셋 및 제한을 사용하여 MySQL에서 전체 쿼리 결과 가져오기
페이지 매김 시나리오에서는 한 페이지에 있는 총 결과 수를 결정하는 것이 중요합니다. 필요한 총 페이지 수를 계산하는 MySQL 쿼리입니다. 한 가지 접근 방식은 쿼리를 두 번 실행하는 것입니다. 한 번은 페이지를 매긴 결과를 검색하기 위한 제한이 있고 다른 한 번은 총 행 수를 계산하기 위한 제한이 없습니다. 그러나 이 접근 방식은 비효율적일 수 있습니다.
SQL_CALC_FOUND_ROWS 입력: 보다 최적화된 솔루션은 초기 쿼리에서 SQL_CALC_FOUND_ROWS 수정자를 활용하는 것입니다. 이 수정자를 포함함으로써 MySQL은 제한을 적용하기 전에 일치하는 행의 총 수를 계산합니다. 그런 다음 SELECT FOUND_ROWS() 문을 실행하여 총 개수를 검색할 수 있습니다.
사용법:
SQL_CALC_FOUND_ROWS를 사용하려면 쿼리 시작 부분에 추가하면 됩니다.
<code class="sql">SELECT SQL_CALC_FOUND_ROWS ...</code>
쿼리를 실행한 후 다음을 실행하여 총 행 수를 검색합니다.
<code class="sql">SELECT FOUND_ROWS();</code>
예:
다음을 가정해 보겠습니다. 다음과 같은 쿼리가 있습니다.
<code class="sql">SELECT * FROM `directory` WHERE `category_id` = 12 ORDER BY `name` ASC LIMIT 10 OFFSET 20;</code>
총 결과 수를 계산하려면 다음 추가 쿼리를 실행합니다.
<code class="sql">SELECT FOUND_ROWS();</code>
이렇게 하면 다음의 총 행 수가 반환됩니다. Category_id가 12인 디렉토리 테이블을 사용하면 페이지 매김에 필요한 총 페이지 수를 효율적으로 결정할 수 있습니다.
위 내용은 오프셋 및 제한 최적화를 사용하여 MySQL에서 총 쿼리 결과를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!