MySQL 存储过程未输出正确的值

MySQL Stored Procedure not outputting correct value

这必须很简单,我只是想念它。我正在尝试 运行 这样的存储过程;

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;

问题是当 运行 是 returns

这对我来说毫无意义。很抱歉尝试将 MS SQL 数据库转换为 MySQL.

的简单问题

正如我所测试的那样,@d 不是您用于从过程中获取输出值的代码中的任何变量。

但是你的最后一个 select @v3 = 'Value 3' 内部程序正在作为控制台的输出。 如您所见,输出为空,但列名是 select @v3 = 'Value 3' 而不是输出 window.

希望它被清除。

Mysql有点古怪SELECT,这个说法

select @v1 =  'Value 1';

实际上是一个比较;它将默认情况下为 NULL 的 @v1 与 value 1 进行比较,这将 return null.If 您要分配的值使用 :=

select @v1 :=  'Value 1';

或者,使用 SET;

SET @v1 =  'Value 1';