2016-04-07 37 views
1

此命令的作用:如何使用选择指定数组到MySQL变量

SET @a = '1,2,3,4,5,6,7,8,9'; 
SELECT Id FROM MyTable2 WHERE find_in_set(Id, @a) 

我想知道是否有可能使用SELECT代替'1,2,3,4,5,6,7,8,9'因为我是不是能够做到这一点。

我tryed:

SET @a = CONCAT_WS(',', (SELECT Id FROM MyTable1 WHERE Id < 10)); 

,但我得到的错误:

Subquery returns more than 1 row

有没有办法做我想要?

+0

我想不出为什么你想这样做。 – Strawberry

+0

@Strawberry我需要在3个查询中使用这个值,所以如果我把它变成一个变量,我会避免3个子查询 – genespos

+0

嗯,这不是一个非常令人信服的答案。 – Strawberry

回答

1

试试这个方法:

SET @a = (SELECT GROUP_CONCAT(Id) FROM mytable WHERE Id < 10); 

这将设置@a'1, 2, 3, ...'的字符串。