MySQL
之间有什么区别吗?IF (myText IS NOT NULL) THEN
和
IF (myText != '') THEN
答案 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