我是MySQL存储过程的新手,正在按照一些教程学习如何使用它们,但在以下内容中遇到了一个有趣的问题:
DELIMITER $$
CREATE DEFINER=`user`@`%` PROCEDURE `CalculateScores`(IN ID INT, OUT test INT)
BEGIN
SELECT COUNT(*)
INTO test
FROM myTable
WHERE id = ID;
END$$
DELIMITER ;
我用以下命令来运行它:
CALL CalculateScores(252, @test);
然后只需:
SELECT @test;
奇怪的事情是,
@test
返回整个表的总行数,而不仅仅是我作为参数发送的 id
。我错过了什么?教程从未提到过这一点,我找不到为什么会发生这种情况的答案,我可能不擅长搜索...