首页 > 数据库 > mysql教程 > 为什么 SQL 中 `NULL != NULL` 不总是返回 True?

为什么 SQL 中 `NULL != NULL` 不总是返回 True?

Barbara Streisand
发布: 2025-01-03 08:49:39
原创
728 人浏览过

Why Doesn't `NULL != NULL` Always Return True in SQL?

为什么 NULL 不等式并不总是返回 True

当将 NULL 值与不等式运算符(“!=”)进行比较时,它是通常假设结果应该为 true,因为 NULL 不等于其自身。但是,在 SQL 等某些上下文中,这种假设是无效的。

SQL 的三元逻辑

在 SQL 中,NULL 表示未知值。这就引入了超越真假的第三种逻辑状态,称为“未知”。因此,与 NULL 的不等式比较遵循三元逻辑,其中结果可以是以下三个之一选项:

  • 未知

示例:

考虑下列语句:

WHERE (A <> B)
登录后复制

如果 A 和 B 都为 NULL,上面的表达式将返回“unknown”,因为无法确定它们是否真正不相等或者是否都未知。

不等式检查的含义

这个三元逻辑表明简单的不等式检查NULL 可能并不总是返回 true。为了确保结果准确,需要使用“IS NULL”和“IS NOT NULL”显式检查 NULL 条件。

例如,以下表达式可以正确处理与 NULL 的不等式比较:

WHERE ((A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL))
登录后复制

通过合并这些显式检查,数据库可以为涉及 NULL 值的所有可能情况确定正确的逻辑结果(真、假或未知)。

以上是为什么 SQL 中 `NULL != NULL` 不总是返回 True?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板