小编Rob*_*son的帖子

MySQL 存储过程返回错误值

我是 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 ;
Run Code Online (Sandbox Code Playgroud)

我用这个运行它:

CALL CalculateScores(252, @test);
Run Code Online (Sandbox Code Playgroud)

然后只是:

SELECT @test;
Run Code Online (Sandbox Code Playgroud)

奇怪的是@test返回整个表的总行数,而不仅仅是id作为参数发送的I 。

我在这里缺少什么?本教程从未提及这一点,我无法找到为什么会发生这种情况的答案,我可能不擅长搜索..

mysql sql stored-procedures

5
推荐指数
1
解决办法
703
查看次数

标签 统计

mysql ×1

sql ×1

stored-procedures ×1