2013-07-02 43 views
7

我开始把我的头发拉出来,甚至有可能是这样的?MySql从一个选择中设置了多个变量

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和than存储过程。
感谢

回答

7

退房它是如何正在做herehere

我没有太多的机会在MySQL的代码,和SELECT ... INTO在T-SQL用于创建的临时表飞。我很惊讶地发现它在MySQL中有更多的功能。

12

这对我有效。

 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。第一个链接帮助我理解正确的语法或至少是为我工作的。

4

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

当我通过请求mysql_query()运行此函数,那么它不工作 –