2016-04-07 62 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, ...'的字符串。