ホームページ  >  記事  >  バックエンド開発  >  ページネーション中にオフセットと制限を使用して MySQL の合計結果数を決定する方法は?

ページネーション中にオフセットと制限を使用して MySQL の合計結果数を決定する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-23 12:12:01488ブラウズ

How to Determine Total Result Count in MySQL with Offset and Limit while Paginating?

オフセットと制限を使用した 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 サイトの他の関連記事を参照してください。

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