首页 > 数据库 > mysql教程 > MySQL 的 NULL 安全等于运算符 () 如何工作?

MySQL 的 NULL 安全等于运算符 () 如何工作?

Linda Hamilton
发布: 2025-01-05 16:29:45
原创
890 人浏览过

How Does MySQL's NULL-Safe Equals Operator () Work?

MySQL 中的不等于 NULL 运算符:

在使用 SQL 查询时,您可能会遇到 <=> 运算符,引发有关其含义和语法的问题。本指南将深入了解该运算符及其应用。

理解

运算符称为 NULL 安全等于运算符。它类似于常规等于运算符 (=),但在处理 NULL 值时有一个关键区别。

常规等于运算符与 NULL 安全等于运算符

如果操作数不相等,则常规等于运算符 (=) 返回 0;如果操作数相等,则返回 1。但是,它将 NULL 值视为特殊情况,在此类比较中生成 NULL 作为结果。

另一方面, 运算符以不同方式处理 NULL 值。如果操作数不相等,则返回 0;如果相等,则返回 1,无论其中一个或两个操作数是否为 NULL。换句话说:

  • 'a' ; 'b' 计算结果为 0
  • 'a' 'a' 计算结果为 1
  • 'a' NULL 计算结果为 0
  • NULL NULL 计算结果为 1

运算符的用处特别明显在比较中的两个操作数都可能包含 NULL 值并且需要两个操作数之间的比较结果一致的情况下很有用

该运算符的另一个实际应用是在准备好的语句中,其中占位符可以无缝处理标量值和 NULL 值,而无需修改查询。

相关运算符

MySQL 还提供其他运算符来比较值NULL:

  • IS NULL: 如果操作数为 NULL,则计算结果为 1,否则计算结果为 0。
  • IS NOT NULL: 计算结果如果操作数不为 NULL,则为 1;如果操作数不为 NULL,则为 0否则。

这些运算符可以被视为 MySQL 的 运算符的特化。例如:

  • 'a' IS NULL 相当于 'a' ; NULL
  • 'a' IS NOT NULL 相当于 NOT('a' NULL)

支持和兼容性

运算符是 MySQL 特定的,其他数据库不支持。

SQL:2003 标准引入了一个谓词,IS [NOT] DISTINCT FROM,其行为与 MySQL 相同 运算符。

此外,以下复杂但普遍支持的表达式也可以达到相同的结果:

CASE WHEN (a = b) or (a IS NULL AND b IS NULL)
     THEN 1
     ELSE 0
END = 1
登录后复制

以上是MySQL 的 NULL 安全等于运算符 () 如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!

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