1

继以下已回答 MySQL 的问题之后:从查询结果中设置用户变量

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

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

请帮忙

4

2 回答 2

1

不需要那个变量,你可以这样做,通过JOINing 两个表questions直接answers像这样:

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 小提琴演示

于 2013-03-19T11:15:57.070 回答
1

终于用下面的方式让它工作了

select * from answers where find_in_set (question_id,@qids);

于 2013-03-27T10:00:13.157 回答