获取MySQL中查询返回的行数

问题描述 投票:0回答:1

有没有一种简单的方法可以获取查询返回的行数以及行本身。 例如,在存储过程中,我需要从查询返回行,如果没有返回行,我需要进行额外的处理。

SELECT * FROM MyTable;
IF [Number of rows] = 0 THEN
    [Do other stuff]
END IF;

Proc 仍然需要返回 MyTable 的内容,即使它没有任何行。 我知道这可以使用两个 SELECT 语句(一个 COUNT() 获取行数,第二个获取行数),但我想知道是否有一种方法可以使用单个 SELECT 来完成此操作。

mysql stored-procedures
1个回答
0
投票

不,不在 SQL 中。

ROW_COUNT()
函数适用于受影响的行,而不是返回的行。它对于
INSERT
UPDATE
DELETE
等 DML 很有用,但对于 SELECT 查询,它会返回
-1

某些客户端接口确实具有行返回功能,但这仅在客户端获取结果集后才起作用。客户端在获取行之前不知道将返回多少行。

正如您所写,您可以先编写一个

SELECT COUNT(*)...

 查询。这就是我会做的。

© www.soinside.com 2019 - 2024. All rights reserved.