0

我有一个名为的表tbl_Question和一个名为的列INT_MARK,它们对不同的问题有不同的标记。像这样:

VH_QUESTION     INT_MARK
-----------     --------
Q1              2
Q2              4

我的问题是:如何获得总分为 50 的随机 20 题?

4

4 回答 4

1
select VH_QUESTION, sum(INT_MARK) from tbl_Question
 group by VH_QUESTION
having sum(INT_MARK) > 50 
order by rand() limit 1
于 2012-11-20T05:23:01.687 回答
0

快速回答

SELECT * ,SUM(INT_MARK) as total_mark FROM tbl_Question  
GROUP BY VH_QUESTION
HAVING total_mark="50"
ORDER BY RAND()
LIMIT 5

当没有答案时它返回 0 行,但每次找到一个问题都是随机的。

您可以检查基准以查看是否可以更快地查询大型表。

于 2012-11-20T05:55:31.063 回答
0

我认为这个问题可能会对您有所帮助 - 似乎是一个非常相似的问题。

如果这不起作用,我会尝试将问题分为两部分:首先,您对您的问题进行组合。然后,您通过它的点总和过滤它们。

但是,我找不到如何生成表格的所有组合。我不知道那会有多难。

于 2012-11-20T05:22:29.610 回答
0
select VH_QUESTION, sum(INT_MARK) from tbl_Question
group by VH_QUESTION
having sum(INT_MARK) >= 50 
order by rand() limit 20
于 2012-11-20T05:24:52.913 回答