首页 >数据库 >mysql教程 >为什么SQL中'!=”和'<>”运算符无法与NULL比较?

为什么SQL中'!=”和'<>”运算符无法与NULL比较?

DDD
DDD原创
2025-01-21 14:57:14789浏览

Why Do " SQL 中运算符与 NULL 比较失败? ” />

理解 SQL 中的 NULL 比较

SQL 使用“!=”和“<>”用于不平等检查。 但是,这些运算符在使用 NULL 值时会出现意外行为。

问题:

考虑这些 SQL 查询:

<code class="language-sql">SELECT * FROM MyTable WHERE MyColumn != NULL;
SELECT * FROM MyTable WHERE MyColumn <> NULL;
SELECT * FROM MyTable WHERE MyColumn IS NOT NULL;</code>

前两个查询返回空结果集,而第三个查询正确返回 568 行。 为什么会出现这种差异?

说明:

“!=”和“<>”比较。 然而,NULL 不是一个值;而是一个值。它表示没有值。 因此,这些运算符不适合NULL比较。

使用 IS NULLIS NOT NULL 代替。这些谓词专门检查值是否存在。 第三个查询的成功源于其正确使用IS NOT NULL.

要点:

  • 要测试非 NULL 值,请使用 IS NOT NULL
  • 使用“”或“!=”与特定的非NULL值进行比较。
  • NULL 不能被视为等于或不等于任何值,因为它代表缺失的数据。

以上是为什么SQL中'!=”和'<>”运算符无法与NULL比较?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn