我试图让它像那样,但它只返回单行。 第一次选择后,程序退出。什么是创建计数的MySQL程序的正确方法?
DROP PROCEDURE IF EXISTS testProc;
DELIMITER $$
CREATE PROCEDURE testProc(start_stamp INT, end_stamp INT, step INT)
BEGIN
DECLARE tmpStep INT;
SET tmpStep = start_stamp;
WHILE tmpStep < end_stamp DO
SELECT tmpStep;
SET tmpStep = tmpStep + step;
END WHILE;
END$$
DELIMITER ;
CALL testProc (1,10,1);
期望的行为是在这种情况下将数字从1返回到10。
在我的最后工作正常,但你将它们作为单独的结果集返回。你如何执行此代码?从连接器或使用命令行工具? –
@MatsKindahl你是对的,连接器只返回第一个选择。我如何将所有结果作为单个结果集返回? –
它在连接器之间有所不同。对于C API,您可以使用'mysql_more_results'和'mysql_next_result'遍历结果集(http://dev.mysql.com/doc/refman/5.5/en/c-api-multiple-queries.html)。 –