-1

嗨,我想编写一个 mysql 查询,给出一个条件明智的结果。

例如。我有一个包含问题、答案值、用户选择值字段的表。

用户可以参加多次回答该问题。

qid righttanz wronganz
11 4 2
11 4 4
11 4 1
25 1 1

我想像这样
qid righttanz wronganz
11 1 2   
25 1 0   

我想显示用户对该问题提供正确和错误答案的次数?我怎样才能为此编写一个mysql查询?任何机构都可以帮助我吗?

4

2 回答 2

2
SELECT SUM(IF(answer = 42, 1, 0)) AS correct_count, count(*) as total_count
FROM answers
WHERE user_id = 13

假设user_id您要检查的是 13,正确答案是 42

于 2011-07-06T05:51:12.047 回答
2

对于所有问题

SELECT a.userId, q.qid
,SUM( CASE WHEN q.answer = a.answer THEN 1 ELSE 0 END) AS correct_answers
,SUM( CASE WHEN q.answer = a.answer THEN 0 ELSE 1 END) AS wrong_answers
FROM questions q
JOIN answers a ON q.qid = a.qid
GROUP BY a.userId, q.qid

对于一个特定的问题

SELECT a.userId
,SUM( CASE WHEN q.answer = a.answer THEN 1 ELSE 0 END) AS correct_answers
,SUM( CASE WHEN q.answer = a.answer THEN 0 ELSE 1 END) AS wrong_answers
FROM questions q
JOIN answers a ON q.qid = a.qid
WHERE q.qid = <question_id>
GROUP BY a.userId
于 2011-07-06T06:26:53.847 回答