MySQL之间有什么区别吗?
IF (myText IS NOT NULL) THEN
并且。
IF (myText != '') THEN
MySQL之间有什么区别吗?
IF (myText IS NOT NULL) THEN
IF (myText != '') THEN
是的,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。
是的,它们有区别。
简单来说,myText IS NOT NULL 表示 myText 有一些值,可能是 ''。
而 myText != '' 表示如果 myText不包含空字符串,则返回 TRUE。
有一个区别。如果列的默认值是 "NULL",那么如果字段没有设置数据,则它确实为 null。但是,如果字段的值已被更新为空字符串 '',它不是 NULL,而是空。
更多信息请参见这里 链接