在 SQL Server 中要获取受最后一条语句影响的总行数,可以使用系统变量@@ROWCOUNT。同样,在 MySQL 中,您可以使用 FOUND_ROWS () 函数找到它。
让我们创建这个数据集
1
2
3
4
5
6
7
8
9
|
CREATE TABLE TEST(ID INT , NAME VARCHAR (30));
INSERT INTO TEST(ID, NAME )
SELECT 1, 'NAME1' UNION ALL
SELECT 2, 'NAME2' UNION ALL
SELECT 3, 'NAME3' UNION ALL
SELECT 4, 'NAME4' UNION ALL
SELECT 5, 'NAME5' ;
SELECT * FROM TEST;
SELECT FOUND_ROWS();
|
以上将返回两个结果集。第二个结果集将是 5(SELECT 语句的行数)。
您还可以使用 SQL_CALC_FOUND_ROWS 和 FOUND_ROWS () 来获取表中的总行数。当使用 SQL_CALC_FOUND_ROWS 时,FOUND_ROWS() 将省略 LIMIT 子句。
1
|
SELECT * FROM TEST LIMIT 2;
|
以上将仅返回 2 行。
1
2
|
SELECT SQL_CALC_FOUND_ROWS * FROM TEST LIMIT 2;
SELECT FOUND_ROWS();
|
当您执行上述操作时,它会返回两个结果集。第一个结果集将返回两行。第二个结果集将返回 5(没有 LIMIT 子句的总行数)。
我认为这是一个非常有趣的功能,我们可以在日常应用中使用它。如果您使用的应用程序需要知道前一条评论影响了多少行,请留下评论。