比较mysql中的两行并根据结果进行操作

时间:2014-10-23 12:28:01

标签: mysql

假设我有问题Q1,Q2等的答案密钥。此外,我对许多学生的相同问题也有回答。无论如何,我可以将每个学生的答案与答案键进行比较,并将获得的分数(例如4,0,-1表示正确,省略和不正确)存储在一个单独的表中?

1 个答案:

答案 0 :(得分:0)

我认为您可以通过重新设计数据库来简化任务。而不是尝试循环遍历列,将问题放在行中并使用SQL JOIN的强大功能...制作类似这样的问题表

create table questions(
question_id int,
question_description VARCHAR(100),
rightanswer varchar(100)
)

现在得到学生的答复:

create table student_responses(
student_id int,
question_id int,
answer varchar(100)
)

现在输出:

SELECT student_id,COUNT(*) as numberofrightanswers FROM
student_responses sr
INNER JOIN
questions q on q.question_id = sr.question_id
where answer = rightanswer
GROUP BY student_id

当然,您可以使用任何您喜欢的逻辑来评分答案。