为了保障原创作者在本站发表文章的利益, 并维护本站原创的精神, 特声明: RIAShanghai对有以下任何情况之一的文章将不通知作者并直接进行快意删除:
- 非原创, 或者原创但一文多发;
- 各种形式的广告与吹擂;
- 不符合本站文章格式.
欢迎各位读者监督. 谢谢合作. 另: 作为Adobe正式的UG, 我们将把Adobe不定期分发的软件,书籍及各种纪念品赠送给发文活跃的作者, 共同进步.
MySQL运算:
SELECT NULL != 1 => NULL (false)
SELECT NULL = 1 => NULL (false)
SELECT NULL IN ('A', 'B') => NULL (false)
SELECT NULL NOT IN ('A', 'B') => NULL (false)
当你书写如下SQL(返回所有t.attr不为1或者2的行) - When you write the below SQL:
SELECT * FROM table_ t WHERE t.attr NOT IN (1, 2)
很可能应该是 - Probably what you really mean is:
SELECT * FROM table_ t WHERE t.attr IS NULL OR t.attr NOT IN (1, 2)
这样表述的情况是:只要t.attr不是1,也不是2, 但t.attr值可以为NULL。
结论:在包含‘NOT’的SQL中需尤其注意NULL的情况 Beware NULL Values When SQL Contains ‘NOT’