Mysql是否与mssql中的@@ ROWCOUNT相同?

时间:2010-02-09 13:11:05

标签: sql mysql stored-procedures

如何在MySQL中获取@@ROWCOUNT在mssql中的行计数值?

5 个答案:

答案 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;