一尘不染

空字符串vs NULL

sql

我有一张桌子,有些行空白cells。我试图使用IS NULL函数选择此类行。但是查询选择0行。

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''既然单元格是空的,有什么区别。请解释。


阅读 172

收藏
2021-05-16

共1个答案

一尘不染

它们之间的一些区别:

  • NULL 可以分配给任何类型,而不是与日期/数字字段不兼容的空字符串。
  • NULL 是一个UNKNOWN值,它没有一个值,而不是一个空字符串,它是一个值,但是一个空字符串。
  • 据我所知,NULL不应捕获内存,而应该捕获空字符串。
  • null = null会导致null相对于''=''会导致TRUE
2021-05-16