ホームページ >バックエンド開発 >PHPチュートリアル >オフセットと制限を使用して MySQL ページネーションで結果の合計数を確認するにはどうすればよいですか?

オフセットと制限を使用して MySQL ページネーションで結果の合計数を確認するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-23 10:33:02447ブラウズ

How Can I Find the Total Count of Results in MySQL Pagination with Offset and Limit?

MySQL でのオフセットと制限を使用した合計結果の検索

ページネーションを使用すると、ユーザーは管理可能なチャンクで大規模なデータセットを参照できます。ただし、合計ページ数を決定するには、結果の合計数を知る必要があります。ページネーションにオフセットと制限を使用する場合、同じクエリを 2 回実行するのは非効率的です。1 回目は制限あり、もう 1 回は制限なしです。

SQL_CALC_FOUND_ROWS: 解決策

この問題では、MySQL は特別なキーワード SQL_CALC_FOUND_ROWS を提供します。このキーワードをクエリの先頭に追加すると、MySQL は LIMIT 句がなければ返される行の合計数を計算して保存します。

クエリの例:

<code class="sql">SELECT SQL_CALC_FOUND_ROWS * 
FROM table_name 
WHERE category_id = '1' 
ORDER BY date_created DESC
LIMIT 10 OFFSET 20;</code>

結果の合計数の取得:

上記のクエリを実行した後、次の PHP コードを使用して結果の合計数を取得できます:

<code class="php">$totalRows = $db->query('SELECT FOUND_ROWS() AS total')->row()->total;</code>

SQL_CALC_FOUND_ROWS の利点:

  • 効率の向上: クエリを 2 回実行する必要がなくなります。
  • 精度: クエリ間で基になるデータが変更された場合でも、総数が正しいことを保証します。
  • シンプルさ: 単一のキーワードで簡単に実装できます。

以上がオフセットと制限を使用して MySQL ページネーションで結果の合計数を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。