mysql json查询对布尔值的行为很有趣

时间:2019-01-01 12:11:05

标签: mysql

我有一个简单的json mysql查询,如下所示:

SELECT json_object(  
  'isCreated', true,
  'active', IF(s.status = 1, true, false),
  ...)
FROM people;

我不明白为什么isCreated会按预期返回true,为什么active会返回1,而预期会返回true

我也尝试在mysql shell SELECT IF(1= 1, true, false)中运行,然后又回到1,我希望它是真的...

1 个答案:

答案 0 :(得分:0)

在您的情况下, true false 是布尔值。 MySQL将布尔值存储为整数。如果 true false 为字符串格式(“ true”,“ false”),它将返回true或false。分配if条件始终视为true。请检查以下链接一次。

Sql Docs(Numberic type overview)

sql tutorial