【发布时间】:2011-03-04 20:10:13
【问题描述】:
和MySQL有什么区别
IF (myText IS NOT NULL) THEN
和
IF (myText != '') THEN
【问题讨论】:
标签: sql mysql null operators conditional
和MySQL有什么区别
IF (myText IS NOT NULL) THEN
和
IF (myText != '') THEN
【问题讨论】:
标签: sql mysql null operators conditional
是的,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。
【讨论】:
是的,有区别。
简单来说,myText IS NOT NULL 指定 myText 具有某个值,它也可能是 ''。
其中 myText != '' 指定它返回 TRUE,如果 myText 不包含 空字符串。
【讨论】:
有区别。如果一个列的默认值为“NULL”,那么如果一个字段没有设置数据,则它是真正的null。但是,如果一个字段的值已经被更新为'',它就不是NULL,而是空的。
查看这里了解更多信息Link
【讨论】: