WHERE条件评估为NULL的行?

时间:2017-02-13 19:10:13

标签: mysql null

在MySQLWorkbench中执行以下查询后,只返回了第一行。

select * from (
  select true as a
  union select false as a
  union select null as a
) x
where a

我从中得到的结论是,查询的where子句求值为null的行将被过滤掉。但是,我找不到此行为的文档,因此我想检查是否可以在编写依赖它的查询之前始终发生此行为。因此,

  1. 此行为是否始终发生,如果是,

  2. 有文件吗?

1 个答案:

答案 0 :(得分:2)

是的,此行为符合预期。

来自文档(https://dev.mysql.com/doc/refman/5.7/en/working-with-null.html):

  

在MySQL中,0或NULL表示false,其他任何表示都是true。布尔运算的默认真值为1。

因此,过滤掉null和false,只返回带有true的行。