検索した結果「1〜30件を表示 / 2000件」と表示したい場合、
最初に該当する件数を取得し、その後、実際の登録内容を検索しています。
もしかして、この面倒なやり方は間違っていて、
一度に該当する件数と、内容を両方取得する方法があるのでしょうか?
SELECT * FROM table WHERE xxxx LIMIT 0 , 30
とするのと同時に該当した全ての件数を取得する事ができるかどうかということと、
できるとした場合のSQLを教えてください。
よろしくお願いします。
SQL_CALC_FOUND_ROWS と、FOUND_ROWS()でどうでしょう?
SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE xxxx LIMIT 0 , 30
として、実行した後、
SELECT FOUND_ROWS();
とすると、LIMITを指定しなかった場合の件数を取得できるようです。
http://dev.mysql.com/doc/refman/5.1/ja/information-functions.htm...
のFOUND_ROWS()のところがわかりやすいです。
コメント(0件)