Mysql 将数据库中的表与布尔值进行比较

Mysql 将数据库中的表与布尔值进行比较,mysql,sql,database,boolean,create-table,Mysql,Sql,Database,Boolean,Create Table,我试图比较数据库中不同表的两列,通过这段代码它可以工作,但它打印'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 the

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

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和0。MySQL将它们解释为数字,您无法通过某些配置将它们打印为“真”或“假”。您可以做的是:

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

MySQL中的boolean只是tinyint的别名,不能直接传递TRUE或FALSE的值。零的值被认为是错误的。非零值被认为是真的哦好的。。。我想使用:
select case,当您的\u bool\u column=1时,然后'true'或'false'结束为\u表中的bool\u col
。所以也许我应该这样离开:用1和0代替真或假好的,谢谢你的帮助。也许我应该让它像1和0一样,而不是让它复杂化。FWIW,MySQL将真与假解释为整数1和0是不标准的。其他SQL实现不这样做。在大多数其他SQL实现中,尝试对布尔值进行算术运算是一个错误。