オフセットと制限の最適化を使用して MySQL で合計クエリ結果をカウントするにはどうすればよいですか?

DDD
リリース: 2024-10-23 13:08:30
オリジナル
525 人が閲覧しました

How to Count Total Query Results in MySQL with Offset and Limit Optimization?

オフセットと制限を使用して MySQL で合計クエリ結果を取得する

ページネーションのシナリオでは、ページ分割の結果の合計数を決定することが重要です。 MySQL クエリを使用して、必要な合計ページ数を計算します。 1 つのアプローチでは、クエリを 2 回実行します。1 回目はページ分割された結果を取得する制限を設定し、もう 1 回目は合計行数をカウントする制限なしで実行します。ただし、このアプローチは非効率的である可能性があります。

SQL_CALC_FOUND_ROWS を入力: より最適化された解決策は、最初のクエリで SQL_CALC_FOUND_ROWS 修飾子を使用することです。この修飾子を含めることにより、MySQL は制限を適用する前に一致する行の合計数を計算します。その後、SELECT FOUND_ROWS() ステートメントを実行して合計数を取得できます。

使用法:

SQL_CALC_FOUND_ROWS を使用するには、クエリの先頭に追加するだけです。

<code class="sql">SELECT SQL_CALC_FOUND_ROWS ...</code>
ログイン後にコピー

クエリの実行後、次を実行して行の合計数を取得します。

<code class="sql">SELECT FOUND_ROWS();</code>
ログイン後にコピー
ログイン後にコピー

例:

としましょう。次のようなクエリがあります。

<code class="sql">SELECT * FROM `directory`
WHERE `category_id` = 12
ORDER BY `name` ASC
LIMIT 10 OFFSET 20;</code>
ログイン後にコピー

結果の合計数を計算するには、次の追加クエリを実行します。

<code class="sql">SELECT FOUND_ROWS();</code>
ログイン後にコピー
ログイン後にコピー

これにより、次のクエリの合計行数が返されます。 category_id が 12 に等しいディレクトリ テーブルを使用すると、ページネーションに必要な総ページ数を効率的に決定できます。

以上がオフセットと制限の最適化を使用して MySQL で合計クエリ結果をカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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