我有一个smallint字段,其中有一些记录在该字段中具有空值.所以当我在选择中使用%时,只显示该字段中的任何值.
我想问一下,我可以使用任何其他外卡字符来显示所有记录,包括那些有空值的记录吗?或者我必须使用或是否为空?
谢谢
NULL没有值,无法与其他值进行比较,这解释了查询失败的原因.如果您还想获取NULL值,则必须添加OR your_field IS NULL到WHERE子句中,正如您已经指出的那样.
注意
有时,NULL可能会让人感到困惑,尤其是对刚刚开始使用数据库的人而言.记住NULL行为的一个好方法是认为它的值是" 我不知道的东西 ".然后,当你编写查询时,你会发现比较失败是有意义的.
例如,"Is NULL是否大于零?" 可能会令人困惑.但是,如果您将问题视为"我不知道大于零的东西吗?",它将立即变得有意义:答案是"我不知道"(这就是为什么不返回该行).:)