オフセットと制限を使用したページ分割された MySQL クエリの合計結果の決定
PHP/MySQL でページ分割を実装する場合、結果の合計数は次のように決定されます。ページ数を計算するために重要です。クエリを 2 回実行する代わりに、SQL_CALC_FOUND_ROWS の利用を検討してください。
例:
SELECT SQL_CALC_FOUND_ROWS * FROM directory_listings WHERE category_id = ? LIMIT ? OFFSET ?
このクエリは、必要な数の結果を取得すると同時に、条件を満たす結果の合計数も計算します。
// Execute the query with pagination parameters $results = $db->query($query, [ 'category_id' => $categoryId, 'limit' => $limit, 'offset' => $offset ]); // Retrieve the found row count $foundRows = $db->query("SELECT FOUND_ROWS() AS num_rows")->row(); // Calculate total pages $totalPages = ceil($foundRows->num_rows / $limit);
利点:
注:
行数を正確に計算し、カウントミスを避けるために、SQL_CALC_FOUND_ROWS を LIMIT と組み合わせて使用する必要があります。
以上がOFFSET と LIMIT を使用して、ページ分割された MySQL クエリの結果の合計数を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。