比较数据库中的布尔表

vawmfj5a  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(356)

我试图比较数据库中不同表的两列,通过这段代码它可以工作,但它打印“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)
);
kqhtkvqz

kqhtkvqz1#

在人类历史上的每一种编程语言中,真与假都是1和0。mysql将它们解释为数字,并且不能通过某些配置将它们打印为“真”或“假”。你能做的是:

SELECT IF(col = 1, 'TRUE', 'FALSE') AS correctAnswer
...

相关问题