2012-07-18 136 views
0

我得到了一個從1到1000的ids表。如何從我的表中選擇行並將結果插入到我聲明的兩個變量中?MySql選擇兩個變量

有些事情是這樣的:

Select from table1 where id = 1 or id = 27 into var1, var2 

回答

1

你可以做到這一點,但你需要確認以下兩個限制:

  1. 的結果集必須正好包含一行
  2. 的行必須包含正好兩列

看到這個:

SELECT 'foo', 4 FROM DUAL INTO @a, @b; 

SELECT @a, @b; 
+------+------+ 
| @a | @b | 
+------+------+ 
| foo | 4 | 
+------+------+ 

而且也是可能的:

SELECT MIN(id), MAX(Population) FROM world.City INTO @min_id, @max_pop; 

SELECT name, population FROM world.Country LIMIT 1 INTO @name, @pop; 
+0

我的回答實際上並不涉及很好地查詢。 Puggan的是。 – 2012-07-18 15:03:28

1
SELECT 
    @var1 := MAX(IF(id = 1, some_field, NULL)), 
    @var2 := MAX(IF(id = 27, some_field, NULL)) 
FROM table 
WHERE id IN (1,27);