NULL与三值逻辑是程序员通常会忽略的问题。在SQL中逻辑表达式的可能值包括TRUE、FALSE、UNKNOWN。他们被称为三值逻辑。
周末,搜索系统扛不住了,需要临时处理,暂时移走一大半的数据。
solr里面需要移走这些不是非常重要的数据,保留其他的。
SELECT * FROM v_table_A WHERE keyB = 'keyC'
果然有同学忽略了这个问题,直接来了这么一段:
SELECT * FROM v_table_A WHERE keyB != 'keyC'
很显然忽略了三值逻辑问题。
SELECT * FROM v_table_A WHERE keyB != 'keyC' or keyB is null
总是有一些常见的问题,反复发生,代码复查的时候也需要注意一些,看看这些容易发生的问题。