Mysql WHERE条件计算为NULL的行?
在MySQLWorkbench中执行以下查询后,只返回第一行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的行将被过滤掉。但是,我找不到这种行为的文档,所以我想在编写依赖于它的查询之前检查是否可以假定这种行为总是会发生。因此, 这种行为会一直发生吗?如果会 有这方面的文件吗 是的,这种行为与预期
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