2012-07-18 89 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);