MySql 从一个选择中设置多个变量

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17417385/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 18:02:23  来源:igfitidea点击:

MySql set multiple variables from one select

mysqlstored-procedures

提问by MrB

I'm starting to pull my hair out here is something like this even possible?

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

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 );

The above doesn't work but i am trying to figure out how I would accomplish this. My ultimate goal here is to call a select and than call stored proc with data from select.
Thanks

以上不起作用,但我试图弄清楚我将如何实现这一点。我的最终目标是调用一个选择,而不是使用来自选择的数据调用存储过程。
谢谢

回答by MrB

This worked for me.

这对我有用。

        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 );

Thanks to Zec. The first link helped me understand the correct syntax or at least what is working for me.

感谢泽克。第一个链接帮助我理解正确的语法或至少什么对我有用。

回答by KimchiMan

For MySQL, please take a look this example code:

对于 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