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