MySQL IS NOT NULL和!= ''之间的区别

6

MySQL之间有什么区别吗?

IF (myText IS NOT NULL) THEN

并且。
IF (myText != '') THEN
3个回答

13

是的,NULL值和空/空白值之间有很大的区别。

这里有一个资源描述了它们之间的差异。

myText IS NULL时:

  • myText IS NOT NULL评估为FALSE
  • myText != ''评估为NULL(在您编写的特定情况下,它本质上与FALSE的行为相同)

然而,您不应该养成将它们视为相同的习惯,因为大多数情况下它们会表现出不同的行为:例如:

假设您有一个名为tbl的表:

id   text
1    NULL
2    
3    abc

注意: 1 包含一个 NULL 值,而 2 包含一个空字符串 ('')。

如果您运行以下查询:

SELECT * FROM tbl WHERE text != ''

...它将返回记录3。

如果您运行以下查询:

SELECT * FROM tbl WHERE text IS NOT NULL

...它将返回记录2和3。


2

是的,它们有区别。

简单来说,myText IS NOT NULL 表示 myText 有一些值,可能是 ''

myText != '' 表示如果 myText不包含空字符串,则返回 TRUE。


1

有一个区别。如果列的默认值是 "NULL",那么如果字段没有设置数据,则它确实为 null。但是,如果字段的值已被更新为空字符串 '',它不是 NULL,而是空。

更多信息请参见这里 链接


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接