嗨,我想编写一个 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查询?任何机构都可以帮助我吗?
SELECT SUM(IF(answer = 42, 1, 0)) AS correct_count, count(*) as total_count
FROM answers
WHERE user_id = 13
假设user_id
您要检查的是 13,正确答案是 42
对于所有问题
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