我使用以下查询:
select count(*) from Table1 where CurrentDateTime>'2012-05-28 15:34:02.403504' and Error not in ('Timeout','Connection Error');
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,此语句不包含具有错误值为NULL的行.我的意图是仅将具有错误值的行过滤为"超时"(或)"连接错误".我需要提供一个附加条件(OR错误为NULL)来检索正确的结果.
为什么MYSQL使用NULL值过滤掉结果?我认为IN关键字将返回一个布尔结果(1/0),现在我明白一些MYSQL关键字不返回布尔值,它也可能返回NULL ....但为什么它将NULL视为特殊?