2013-07-02 36 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()運行此函數,那麼它不工作 –