2011/12/07

【MySQL】SQL_CALC_FOUND_ROWSを使って取得件数を取得する

ということでMySQLネタ2つ目です。

今回仕事でページャを作ることになったのですが、その際のメモです。

SQLでLIMITを取得してページごとに取得する位置を変えられるのはいいのですが、
LIMIT句をつけているといちいちLIMIT句なしで全件カウントしないといけません。

全部実装し終わってから教えてもらったのですが、

「SQL_CALC_FOUND_ROWS」というのがあるそうです。

これは、LIMIT句が付いているクエリでも結果の取得件数を取得できるらしいです。

SELECT 
 SQL_CALC_FOUND_ROWS
 *
FROM 
 `emp`
LIMIT 0, 20;
こういう風にセットします。 セットした後
SELECT 
FOUND_ROWS();
これで取得できます。 SELECTを二回走らせるのに代わりはないですが。 記述が楽なので次から使っていこうと思います。 終わり

0 件のコメント:

コメントを投稿