我一直在做测验,测验的核心已经完成了......我现在需要的是:
我收到了用户注册,在我的测验中,当用户对某个问题做出正确回答时,他应该能够看到有多少人对该问题的回答错误。
到目前为止,我已经能够通过将“答案”表与“问题”表一起加入来检查用户所做的所有正确答案......然后检查它......
我希望能够知道的是问题的错误答案的前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
答案 0 :(得分:3)
有关表结构的更多信息会很有用。根据您提供的内容,我认为您只需要这样做:
SELECT answer, count(*) FROM answers
WHERE question_id = 1
AND answer != "<correct answer>"
Group By answer
Order By count(*) Desc;
这会计算每个答案,并从大多数到最不频繁的顺序进行排序。