@@ROWCOUNT
がmssqlで行うように、MySQLで行カウント値を取得するにはどうすればよいですか?
SELECTの場合、FOUND_ROWS
コンストラクトを使用できます( ここに記載 ):
SELECT SQL_CALC_FOUND_ROWS something FROM your_table WHERE whatever;
SELECT FOUND_ROWS( ) ;
これは、最後のSELECT
クエリの行数を返します(または最初のクエリにLIMIT
句がある場合、LIMIT
)。
UPDATE
/DELETE
/INSERT
の場合、 ROW_COUNT 構文です。
INSERT INTO your_table VALUES (1,2,3);
SELECT ROW_COUNT();
影響を受ける行の数を返します。
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
-> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();
これについてもっと読む here
最も簡単な方法は、変数を使用することです。
_mysql> SELECT @rowcount:=COUNT(*) FROM my_table;
mysql> SELECT @rowcount;
_
または、SQL_CALC_FOUND_ROWSをSELECTステートメントに入れた後、FOUND_ROWS()
構文を使用できます。
_mysql> SELECT SQL_CALC_FOUND_ROWS * FROM my_table;
mysql> SELECT FOUND_ROWS();
_
別の方法があります:
CREATE TEMPORARY TABLE `results` AS ( *** Your query without LIMIT *** );
行数を取得する
SELECT COUNT(*) FROM `results`;
サブセットを取得する
SELECT * FROM `results` LIMIT 5,10;
一時テーブルは現在のセッションにのみ存在します。私はその後もクリーンアップします
DROP TEMPORARY TABLE `results`;