Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql WHERE条件计算为NULL的行?_Mysql_Null - Fatal编程技术网

Mysql WHERE条件计算为NULL的行?

Mysql WHERE条件计算为NULL的行?,mysql,null,Mysql,Null,在MySQLWorkbench中执行以下查询后,只返回第一行 select * from ( select true as a union select false as a union select null as a ) x where a 我的结论是,查询的where子句计算结果为null的行将被过滤掉。但是,我找不到这种行为的文档,所以我想在编写依赖于它的查询之前检查是否可以假定这种行为总是会发生。因此, 这种行为会一直发生吗?如果会 有这方面的文件吗 是的,这种行为与预期

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

select * from (
  select true as a
  union select false as a
  union select null as a
) x
where a
我的结论是,查询的
where
子句计算结果为
null
的行将被过滤掉。但是,我找不到这种行为的文档,所以我想在编写依赖于它的查询之前检查是否可以假定这种行为总是会发生。因此,

  • 这种行为会一直发生吗?如果会

  • 有这方面的文件吗


  • 是的,这种行为与预期一样

    从文档()中:

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

    所以null和false都被过滤掉,只返回带有true的行

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