ホームページ >データベース >mysql チュートリアル >MySQL でページネーションを使用して合計行数を効率的に取得する方法
LIMIT を使用した合計行数の取得
ページネーションを使用して SQL クエリを実行する場合、多くの場合、合計行数を取得する必要があります。通常、これにはクエリを 2 回実行する必要があります。1 回目は LIMIT 句を使用せずに合計数を決定します。
ただし、複数のクエリに頼らずにこれを達成するより効率的な方法があります。
SQL_CALC_FOUND_ROWS
MySQL 4.0.0 以降、SQL_CALC_FOUND_ROWS オプションが使用できるようになりました。 LIMIT 句が存在する場合でも、合計行数を計算するように MySQL に指示します。
このオプションを使用するには、メイン クエリの SELECT ステートメントの後に追加するだけです。次に、別のクエリを実行して、FOUND_ROWS() 関数を使用して行数を取得します。
SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10; SELECT FOUND_ROWS();
注: SQL_CALC_FOUND_ROWS には 2 つのクエリが必要ですが、通常はメイン クエリを 2 回実行するより高速です。 。ただし、MySQL 8.0.17 の時点では、このオプションは非推奨であり、将来のバージョンでは削除される予定です。
代替: COUNT()
代替として、別のクエリで COUNT() 関数を使用して、合計行数を取得できます。
SELECT COUNT(*) FROM tbl_name WHERE id > 100;
この方法でも 2 つのクエリが必要ですが、これはより新しい、推奨されるアプローチです。
以上がMySQL でページネーションを使用して合計行数を効率的に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。