在MySQLWorkbench中执行以下查询后,只返回了第一行。
select * from (
select true as a
union select false as a
union select null as a
) x
where a
我从中得到的结论是,查询的where
子句求值为null
的行将被过滤掉。但是,我找不到此行为的文档,因此我想检查是否可以在编写依赖它的查询之前始终发生此行为。因此,
此行为是否始终发生,如果是,
有文件吗?
答案 0 :(得分:2)
是的,此行为符合预期。
来自文档(https://dev.mysql.com/doc/refman/5.7/en/working-with-null.html):
在MySQL中,0或NULL表示false,其他任何表示都是true。布尔运算的默认真值为1。
因此,过滤掉null和false,只返回带有true的行。