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

时间:2010-06-17 07:51:48

标签: sql mysql null operators conditional

MySQL

之间有什么区别吗?
IF (myText IS NOT NULL) THEN

IF (myText != '') THEN

3 个答案:

答案 0 :(得分:11)

是的,NULL值与空白/空值之间存在很大差异。

这是描述差异的one resource

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。

答案 1 :(得分:2)

是的,有区别。

简单来说, myText IS NOT NULL 指定myText具有某些可能“太的值。

myText!=''指定返回TRUE,如果myText不包含空字符串

答案 2 :(得分:1)

有区别。如果列的默认值为“NULL”,那么如果没有为字段设置数据,则它实际上为空。但是,如果字段的值已更新为'',则它不是NULL,而是为空。

有关详情,请参阅此处Link