MySql从一个select中设置多个变量

时间:2013-07-02 04:25:53

标签: mysql stored-procedures

我开始把头发拉出来这样的事情甚至可能吗?

DECLARE var1 int;
DECLARE var2 int;
DECLARE var3 int;
SELECT var1:=id, var2:=foo, var3:=bar from page WHERE name="bob";
CALL someAwesomeSP (var1 , var2 , var3 );

以上不起作用,但我想弄清楚如何实现这一目标。我的最终目标是调用select而不是使用select中的数据调用存储过程 感谢

3 个答案:

答案 0 :(得分:18)

这对我有用。

        DECLARE var1 int;
        DECLARE var2 int;
        DECLARE var3 int;
        SELECT id, foo, bar INTO var1, var2, var3 from page WHERE name="bob";
        CALL someAwesomeSP (var1 , var2 , var3 );

感谢Zec。第一个链接帮助我理解了正确的语法或至少对我有用的东西。

答案 1 :(得分:10)

对于MySQL,请看一下这个示例代码:

-- Init variables
SET @var1 = 0;
SET @var2 = 0;
SET @var3 = 0;
SELECT VALUE1, VALUE2, VALUE3 INTO @var1, @var2, @var3 FROM COOL_TABLE WHERE VALUE_ID = 12345;

-- Then you can use declared variables
SELECT * FROM ANOTHER_TABLE WHERE VALUE1 = @var1 AND VALUE2 = @var2

答案 2 :(得分:6)

查看它是如何完成的herehere

我没有太多机会在​​MySQL中编码,并且在T-SQL中使用SELECT ... INTO来动态创建临时表。我很惊讶地发现它在MySQL中有更多的功能。