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

Barbara Streisand
リリース: 2024-10-23 12:12:01
オリジナル
487 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!