Mysql中NULL和空值之间的区别

Him*_*shu 5 mysql sql

我必须检查名为RESULT空白的特定列的值是否为空.

当我检查时if RESULT IS NULL,查询失败,但当我检查时RESULT='',它工作.

两者之间有什么区别.

请解释.

"UPDATE RLS_TP_2012_03 a, RLS_TP_2012_03 b SET a.COMMENT=b.COMMENT where b.TCODE='T1199' and  a.GROUPNAME='xyz' and a.HLABNO=b.HLABNO and a.RESULT =''; ";   
"UPDATE RLS_TP_2012_03 a, RLS_TP_2012_03 b SET a.COMMENT=b.COMMENT where b.TCODE='T1199' and  a.GROUPNAME='xyz' and a.HLABNO=b.HLABNO and a.RESULT is NULL; "
Run Code Online (Sandbox Code Playgroud)

Ric*_*cky 26

  1. NULL缺乏价值.空字符串是一个值,但只是空的.NULL对数据库来说是特殊的.

  2. NULL已经没有界限,它可以用于string,integer,date等.在数据库中的字段.

  3. NULL没有分配任何内存,stringwith NULL值只是一个指向内存中无处的指针.但是,尽管存储在存储器中的值是,但是,空IS被分配到存储器位置"".

  • 这是否意味着NULL技术上占用的空间/内存更少,因此性能更好?例如,如果nvarchar(max)具有NULL值而不是空字符串? (2认同)

pax*_*blo 6

在三值逻辑中,NULL应该用来表示“未知”或“不适用”,空列应该表示“已知但为空”。

有些 DBMS 产品并不总是遵循这个约定,但我认为它们是有缺陷的。是的,你知道你是谁,Oracle :-)

此外,虽然 NULL 可以放入任何列类型(not null暂时忽略子句),但不能将“空”值放入非字符字段(如integer)。