Mysql:使用多个值从查询结果中设置用户变量

时间:2013-03-19 11:11:59

标签: mysql sql variables

进一步回答以下问题 MySQL: Set user variable from result of query

我需要将逗号分隔值数组存储到查询返回的变量中。 例如

SET @qids := (select distinct GROUP_CONCAT(question.id, '')
from questions 
where chapter_id in(100,101,102);

select * 
from answers 
where question_id in (@qids);

这样可行,但问题是@qids变量只有一个question_id值,而不是question_id

格式的60,61,62个{{1}}

请帮忙

2 个答案:

答案 0 :(得分:1)

不需要该变量,您可以通过JOIN直接questionsanswers这两个表来完成此操作:

SELECT *
from questions AS Q
INNER JOIN answers AS a ON q.question_id = a.question_id
where q.chapter_id in(100, 101, 102);

SQL Fiddle Demo

答案 1 :(得分:1)

最后让它以下面的方式工作

选择* 从答案 其中find_in_set(question_id,@ qids);