SELECTで選ばれた行数を得る / magicien 

LIMITで行数を指定していると、SELECT文に該当する行数が本当はいくつだったのかがわからない。LIMITを指定しないクエリを発行することで行数を得るという手もあるが、MySQLではもっといい方法があったのでメモ。

行数を得たいSELECT文に「SQL_CALC_FOUND_ROWS」と書いておき、クエリを発行した直後に、「SELECT FOUND_ROWS()」とすると、LIMITを指定しない場合の行数が得られる。
SELECT SQL_CALC_FOUND_ROWS * FROM `table` LIMIT 0, 10;
SELECT FOUND_ROWS();
これで、余計なデータを取得することなく行数を得ることが出来る。
2007/03/11(Sun) 00:24:26