ホームページ >バックエンド開発 >PHPチュートリアル >ページネーション中にオフセットと制限を使用して MySQL の合計結果数を決定する方法は?
オフセットと制限を使用した MySQL の合計結果数の決定
ページネーションは Web 開発の重要な側面であり、大規模なデータセットを効率的に表示できます。複数のページにわたっています。 MySQL クエリでオフセットと制限を使用する場合、必要なページネーションを計算するために結果の総数を決定することが重要です。
1 つの方法は、クエリを 2 回実行することです。1 回目は表示する結果を取得するための制限を使用し、2 回目は制限を使用して表示する結果を取得します。合計行数をカウントする制限はありません。ただし、この方法は非効率的であり、データベース リソースに負担がかかる可能性があります。
より効率的な解決策は、SQL_CALC_FOUND_ROWS キーワードを使用することです。このキーワードは、制限なしで返される行の合計数を計算するように MySQL に指示します。合計行数は、FOUND_ROWS() 関数を使用して取得できます。
たとえば、次のクエリを考えてみます。
SELECT * FROM table_name ORDER BY id LIMIT 10 OFFSET 20;
合計行数を確認するには、先頭に SQL_CALC_FOUND_ROWS を追加します。クエリの:
SELECT SQL_CALC_FOUND_ROWS * FROM table_name ORDER BY id LIMIT 10 OFFSET 20;
このクエリを実行した後、FOUND_ROWS() を使用して合計数を取得します:
$total_results = $this->db->query('SELECT FOUND_ROWS()')->row()->{'FOUND_ROWS()'};
このアプローチは、結果の合計数を決定する効率的な手段を提供します。別のクエリは必要ありません。計算リソースを節約し、特に大規模なデータセットの場合に最適なデータベース パフォーマンスを保証します。
以上がページネーション中にオフセットと制限を使用して MySQL の合計結果数を決定する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。