MySQL4.0.xについて教えてください


検索した結果「1〜30件を表示 / 2000件」と表示したい場合、
最初に該当する件数を取得し、その後、実際の登録内容を検索しています。

もしかして、この面倒なやり方は間違っていて、
一度に該当する件数と、内容を両方取得する方法があるのでしょうか?


SELECT * FROM table WHERE xxxx LIMIT 0 , 30

とするのと同時に該当した全ての件数を取得する事ができるかどうかということと、
できるとした場合のSQLを教えてください。

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/12/30 14:55:09
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:bonyan No.1

回答回数13ベストアンサー獲得回数1

ポイント60pt

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()のところがわかりやすいです。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません