MySQL选择成变量

Leo*_*Leo 2 mysql execute prepare

我想在过程中进一步使用从选择中获取的值,然后执行,但不知道如何执行。

作为测试,我编写了以下内容,但无法将v_1,v_2或v_3变量用于进一步的逻辑,因为它们不像我期望的那样接受值1,2和3。

DROP PROCEDURE IF EXISTS MPT_testing; DELIMITER //  CREATE PROCEDURE MPT_testing() READS SQL DATA BEGIN

  DECLARE v_1 INT;   DECLARE v_2 INT;   DECLARE v_3 INT;
     SET @sql=CONCAT('SELECT 1,2 into v_1, v_2');   PREPARE s1 FROM @sql;   EXECUTE s1;   DEALLOCATE PREPARE s1;

  SET v_3 = v_1 + v_2;

  SELECT v_3;

END //

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

谢谢,狮子座

Fra*_*mas 5

尝试将“ SELECT 1,2更改为v_1,v_2”

'SELECT @v_1:=1, @v_2:=2'
Run Code Online (Sandbox Code Playgroud)

或至少确保在引用变量时使用@。有关更多信息,请参见此线程: MySQL DECLARE中的​​SELECT INTO变量会导致语法错误?