Contents
- UNIX
- Windows
- サーバ
- プログラミング言語
- データベース
- プロトコル
- サービス
- オープンソース
- 規格・技術
- アプリケーション
- PC
- DEVICE
- その他(未分類)
お問合せ: メールフォーム
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS();
2 番目の SELECT では、最初の SELECT を LIMIT 節なしで実行した場合に返されるレコード数を示す数が返る
mysql> SELECT * FROM tbl_name WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS();
2 番目の SELECT では、LIMITで制限されたレコード数を示す「10」が返る
(※該当レコード数が10以上の場合。10以下の時は該当レコード数が返る)
注意:
SELECT SQL_CALC_FOUND_ROWS … を使用した場合、MySQL では完全な結果セットに含まれるレコード数を計算する必要が生じる。
しかし、この場合、結果セットをクライアントに送る必要がないため、LIMIT なしで再度クエリを実行するより時間がかからない。
SQL_CALC_FOUND_ROWS と FOUND_ROWS() は、クエリで返されるレコード数を制限する必要がある場合に、完全な結果セットに含まれるレコード数を(クエリを再実行することなく)確認したいときに役立つ。
例として、検索結果の別のセクションを示すページへのリンクを含むページ画面を表示する Web スクリプトを挙げることができる。
FOUND_ROWS() を使用すると、結果の残りの部分を表示するのにあと何ページ必要か確認できる。