如何进行测验前5个错误的答案?

时间:2012-01-19 16:22:11

标签: php sql

我一直在做测验,测验的核心已经完成了......我现在需要的是:

我收到了用户注册,在我的测验中,当用户对某个问题做出正确回答时,他应该能够看到有多少人对该问题的回答错误。

到目前为止,我已经能够通过将“答案”表与“问题”表一起加入来检查用户所做的所有正确答案......然后检查它......

我希望能够知道的是问题的错误答案的前5位...我得到了一个名为'答案'的表格,我知道其中的问题...所以我怎么找到错误回答,然后找出哪些回答最多?

SELECT * FROM answers

WHERE question_id = 1

AND answer IN (

SELECT answer 

FROM answers

GROUP BY answer

HAVING COUNT( * ) >1
)

此查询选择表中大部分的值。

我的问题是我需要知道插入的每个不同值的数量(然后按最高数字排序)。假设我的数据库中的用户回答'蛋糕和培根'123次然后在数据库中将有123个答案与该值...但我不希望所有行具有该值,我想要1行值123。 / p>

因为我想提出前5个错误的答案,我希望它能留下正确的答案。

对不起,这很难解释。希望你理解,感谢阅读!

祝你好运, 的Mathias

1 个答案:

答案 0 :(得分:3)

有关表结构的更多信息会很有用。根据您提供的内容,我认为您只需要这样做:

SELECT answer, count(*) FROM answers

WHERE question_id = 1

AND answer != "<correct answer>"

Group By answer

Order By count(*) Desc;

这会计算每个答案,并从大多数到最不频繁的顺序进行排序。