这必须是简单的,我只是错过了它。我试图运行这样一个存储过程;
DELIMITER $$
DROP PROCEDURE IF EXISTS Testing$$
CREATE PROCEDURE `Testing`(out d varchar(10))
BEGIN
select @v1 = 'Value 1';
select @v2 = 'Value 2';
select @v3 = 'Value 3';
set d = @v1;
END$$
DELIMITER ;
call Testing(@d);
select d;问题是当运行时,它会返回。

这对我来说毫无意义。对于试图将MySQL转换为MySQL的简单问题,很抱歉。
发布于 2015-02-11 22:57:05
正如我测试过的那样,@d在您的代码中不是任何变量,您使用它从过程中获取输出值。
但是您的最后一个选择@v3 = 'Value 3'在过程中作为控制台的输出工作。如您所见,输出为null,但列名为,选择@v3 = 'Value 3',而不是输出输出窗口中的过程。
希望它被清除了。
发布于 2015-02-11 23:03:32
Mysql在SELECT上有点古怪,下面的语句
select @v1 = 'Value 1';实际上是一种比较;它将默认为NULL的@v1与value 1进行比较,后者将返回要分配值的null.If --使用:=
select @v1 := 'Value 1';或者,使用成套;
SET @v1 = 'Value 1';https://stackoverflow.com/questions/28465778
复制相似问题