我试图比较数据库中不同表的两列,通过这段代码它可以工作,但它打印“1”表示true,“0”表示false。我想印的是真假字。我知道在下面的第二段代码中,true和false的引号丢失了,但是如果我把它们放进去,就会得到一个警告。你能帮我解决吗?我只想显示true或false,而不是“1”和“0”。
SELECT s.solution_number, a.choice_answer,
case when s.solution_number = a.choice_answer then 'TRUE' else 'FALSE'
END as correct_answer
FROM solution s
INNER JOIN answers a on s.exercise_id_fk=a.exercise_id_fk;
UPDATE answers a
INNER JOIN solution s on s.exercise_id_fk=a.exercise_id_fk
set a.correct_answer = case
when s.solution_number = a.choice_answer then TRUE else FALSE END
where s.exercise_id_fk=a.exercise_id_fk;
这些是我的table:
CREATE TABLE solution(
exercise_id_fk INT,
solution_number INT,
FOREIGN KEY(exercise_id_fk) REFERENCES exercises(exercise_id)
);
CREATE TABLE answers(
exercise_id_fk INT,
student_id INT,
choice_answer INT,
correct_answer BOOLEAN,
FOREIGN KEY(exercise_id_fk) REFERENCES exercises(exercise_id)
);
1条答案
按热度按时间kqhtkvqz1#
在人类历史上的每一种编程语言中,真与假都是1和0。mysql将它们解释为数字,并且不能通过某些配置将它们打印为“真”或“假”。你能做的是: