SQL_CALC_FOUND_ROWS

| コメント(0) | トラックバック(0)

SQL_CALC_FOUND_ROWS(バージョン 4.0.0 以降)では、LIMIT 節を無視した場合に結果セットに含まれるすべてのレコード数を計算するよう MySQL に指示できる。 その後、SELECT FOUND_ROWS() を使用して、計算されたレコード数を取り出せる。

LIMITを使ってリストなどをページングする時に、全部で何レコードあるかも調べないといけないのでSQL_CALC_FOUND_ROWSを使い、次にSELECT FOUND_ROWS() で全レコード数を取得する。

一番初めの表示の時はページングの必要は無いので LIMIT 0,30などで取得し、SELECT FOUND_ROWS()で取得した全レコード数をhiddenに入れておく。

ページングの次へや戻るをクリックされたときは、hiddenの全レコード数を元にLIMITを計算して必要なレコードを取得する。

普通にウェブサイトでページングをしようとすると、最初に全レコードをカウントしないと出来ないが、このほうが大量のデータの時などは時間短縮が出来るようです。

LIMIT節を使用しなかった場合に何件のレコードが存在したかを知りたい時には、SQL_CALC_FOUND_ROWSでLIMITが付いたSQLを実行した直後にSELECT FOUND_ROWS()でレコード数を求めれます。

トラックバック(0)

トラックバックURL: http://web.p-jisoku.com/mt4.2/mt-tb.cgi/454

コメントする

Google AdSense

バナー

プチ自給自足、野菜、果物、柑橘、栽培日記
晴耕雨読夜web
WEB備忘録(うぇぶびぼうろく)
blogranking
にほんブログ村 ネットブログへ
FC2 Blog Ranking
Powered by Movable Type 4.261