我有一张表,其中一些行有一些空白cells
。我试图用IS NULL函数选择这样的行。但查询选择0行。空字符串对NULL
select * from zzz_fkp_registration_female where fname is null;
(0 row(s) affected)
现在我改变了我的查询:
select * from zzz_fkp_registration_female where fname is null or fname ='';
我得到了想要的结果。
为什么IS NULL不提供结果?由于单元格为空,因此IS NULL
和''
之间有何区别。请解释。
在SQL NULL被定义为NULL和“”指的是一些空值 –
“”空字符串:我们可以说没有任何价值。但是NULL意味着我们不能说没有价值。这意味着可能有价值,但它的未知。这就是NULL与空字符串不同的原因。 –
不允许零长度的字符串作为名称(有一个约束或触发器)。在这种情况下使用NULL。 – jarlh