2016-05-07 31 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'; 

你可以使用某种形式的级联得到的两个值的字符串表示不是数组,所以你仅限于数字和字符串类型。

相关问题