如何在MySQL中获取@@ROWCOUNT
在mssql中的行计数值?
答案 0 :(得分:58)
对于SELECT,您可以使用FOUND_ROWS
构造(documented here):
SELECT SQL_CALC_FOUND_ROWS something FROM your_table WHERE whatever;
SELECT FOUND_ROWS( ) ;
将返回最后一个SELECT
查询中的行数(或者如果第一个查询具有LIMIT
子句,它将返回没有{{1}的情况下的行数}})。
对于LIMIT
/ UPDATE
/ DELETE
,它是ROW_COUNT构造
INSERT
将返回受影响的行数。
答案 1 :(得分:7)
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
-> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();
详细了解此here
答案 2 :(得分:2)
最简单的方法是使用变量:
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();
答案 3 :(得分:0)
还有另一种方式:
CREATE TEMPORARY TABLE `results` AS ( *** Your query without LIMIT *** );
获取行数
SELECT COUNT(*) FROM `results`;
获取您的子集
SELECT * FROM `results` LIMIT 5,10;
临时表仅存在于当前会话中。之后我还是会清理
DROP TEMPORARY TABLE `results`;
答案 4 :(得分:0)
计算where子句中子查询中的行数。然后测试总行数是否大于零。
选择customerNumber, 顾客姓名, creditLimit 来自客户 其中(SELECT count(*)为tot 来自客户)> 0;