SQL-检查多项选择题的正确答案

SQL-检查多项选择题的正确答案,sql,Sql,我正在做一个多选题表格。投稿人将写一个问题,其中包含3到4个可能的答案。总是只有一个正确答案。检查所选答案是否正确的最有效方法是什么?我还可以更改存储在“正确答案”列中的值 但是,如果您没有使用无状态应用程序(如网页),则最好将问题加载一次并在程序代码中检查答案。您是否将提交的答案存储在某个位置?你需要比较一下。不,我没有。我将有多个用户。你认为我应该为此创建一个新表吗?实际上,我正在考虑将问题表拆分为两个较小的表:问题和答案。谢谢,我实际上在后端使用了flask,我更新了我的问题!谢谢 CR

我正在做一个多选题表格。投稿人将写一个问题,其中包含3到4个可能的答案。总是只有一个正确答案。检查所选答案是否正确的最有效方法是什么?我还可以更改存储在“正确答案”列中的值


但是,如果您没有使用无状态应用程序(如网页),则最好将问题加载一次并在程序代码中检查答案。

您是否将提交的答案存储在某个位置?你需要比较一下。不,我没有。我将有多个用户。你认为我应该为此创建一个新表吗?实际上,我正在考虑将
问题
表拆分为两个较小的表:
问题
答案
。谢谢,我实际上在后端使用了flask,我更新了我的问题!谢谢
CREATE TABLE `questions` (
  `question_id` int NOT NULL AUTO_INCREMENT,
  `contributor_id` int NOT NULL,
  `question_text` varchar(1000) NOT NULL,
  `answer_a` varchar(200) NOT NULL,
  `answer_b` varchar(200) NOT NULL,
  `answer_c` varchar(200) NOT NULL,
  `answer_d` varchar(200) DEFAULT NULL,
  `correct_answer` varchar(20) NOT NULL,
  PRIMARY KEY (`question_id`)
) 
def add_contributor():
    name = request.form.get('contrib_name')
    question = request.form.get('question')
    answer_a = request.form.get('answer_a')
    answer_b = request.form.get('answer_b')
    answer_c = request.form.get('answer_c')
    correct_answer = request.form.get('correct_answer')
    
    sql_1 = "INSERT INTO contributors (name) VALUES (%s)"
    sql_2 = "SELECT contributor_id from contributors WHERE name=(%s)"
    sql_3 = "INSERT INTO questions (contributor_id, question_text, answer_a, answer_b, answer_c, correct_answer) VALUES (%s, %s, %s, %s, %s, %s)"
        
        
    cursor = conn.cursor()
    cursor.execute(sql_1, name)
    cursor.fetchall()
    conn.commit()
    
    cursor_2 = conn.cursor()
    cursor_2.execute(sql_2, name)
    contrib_val = cursor_2.fetchall()
    contrib_id = contrib_val[0][0]

    cursor_3 = conn.cursor()
    cursor_3.execute(sql_3, (contrib_id,question, answer_a, answer_b, answer_c, correct_answer))    
    cursor_3.fetchall()
    conn.commit()
SELECT CASE WHEN EXISTS (
    SELECT *
    FROM questions
    WHERE question_id = yourQuestionId 
    AND correct_answer = yourAnswer)
THEN CAST(1 AS BIT)
ELSE CAST(0 AS BIT) END