2016-05-07 62 views
2

我有這個疑問:如何將查詢結果分配給變量?

SELECT col1, col2 FROM tablename WHERE id = 'n'; 

注:n是唯一的,始終查詢的結果上面一個一行。


現在我想col1col2存儲到一個變量。像這樣:

SET @var_name = SELECT col1, col2 FROM tablename WHERE id = 'n'; 

正如你所看到的,有兩列。所以我想知道如何分別獲得這些列的價值?


在現實中,我想使用這樣的:

SET @var_name = SELECT col1, col2 FROM tablename WHERE id = 'n'; 

IF (@var_name[col1] = 'x' AND @var_name[col2] = 'xx') THEN 
    -- do stuff 
ELSEIF (@var_name[col1] = 'y' AND @var_name[col2] = 'yy') THEN 
    -- do stuff 
END IF; 

但我的語法不起作用。我該如何解決它?

回答

2

你會在變量,它存儲爲:

SELECT @var := CONCAT_WS(', ', col1, col2) 
FROM tablename 
WHERE id = 'n'; 

然而,MySQL的變量是:

SELECT @var1 := col1, @var2 := col2 
FROM tablename 
WHERE id = 'n'; 

你可以使用某種形式的級聯得到的兩個值的字符串表示不是數組,所以你僅限於數字和字符串類型。

相關問題