ホームページ > データベース > mysql チュートリアル > OFFSET と LIMIT を使用して、ページ分割された MySQL クエリの結果の合計数を効率的に取得するにはどうすればよいですか?

OFFSET と LIMIT を使用して、ページ分割された MySQL クエリの結果の合計数を効率的に取得するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-01 00:36:12
オリジナル
714 人が閲覧しました

How Can I Efficiently Get the Total Count of Results for Paginated MySQL Queries Using OFFSET and LIMIT?

オフセットと制限を使用したページ分割された 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);
ログイン後にコピー

利点:

  • 効率的: 複数ではなく 1 つのクエリ実行のみ。
  • 正確: 正確な行数を提供します。条件に関係なく、条件を満たすすべての行ページネーション。

注:

行数を正確に計算し、カウントミスを避けるために、SQL_CALC_FOUND_ROWS を LIMIT と組み合わせて使用​​する必要があります。

以上がOFFSET と LIMIT を使用して、ページ分割された MySQL クエリの結果の合計数を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート