首页 > 数据库 > mysql教程 > 为什么'CODE!='C'”在 MySQL 查询中排除 NULL 值?

为什么'CODE!='C'”在 MySQL 查询中排除 NULL 值?

Susan Sarandon
发布: 2025-01-09 19:37:45
原创
539 人浏览过

Why Does

MySQL 中 NULL 值的比较

在 MySQL 中,比较包含 NULL 值的列可能会带来挑战,因为其行为与标准的等值比较不同。本文探讨了为什么像 "SELECT * from TABLE where CODE!='C'" 这样的查询会排除 CODE=NULL 的行,即使 'C' 不是 NULL。

NULL 比较的行为

当将列与非 NULL 值(例如 "CODE!='C'")进行比较时,查询将返回 CODE 匹配 'C' 的行,并排除所有其他值,包括 NULL。这种行为源于 SQL 将 NULL 视为一个不参与标准比较的独特值。

要将 NULL 值包含在比较中,必须使用 IS NULL 或 IS NOT NULL 运算符显式检查它们。例如,以下查询将返回 CODE 为 NULL 或不等于 'C' 的所有行:

<code class="language-sql">SELECT * from TABLE where CODE IS NULL OR CODE!='C'</code>
登录后复制

CODE!='C' 行为的解释

"CODE!='C'" 不返回 CODE=NULL 的行的原因是,该查询对于任何涉及 NULL 的比较都将评估为 false。即使 'C' 不是 NULL,将其与 NULL 值进行比较始终会导致 false。

替代比较运算符

MySQL 提供了一种替代比较运算符 "<="(小于或等于),可用于比较包含 NULL 的值。"x <= y" 的评估结果如果 x 小于、等于或为 NULL,则返回 true,否则返回 false。

通过使用 "CODE <= 'C' OR CODE IS NULL" 代替 "CODE!='C'",您可以返回 CODE 为 NULL 或不等于 'C' 的所有行。

以上是为什么'CODE!='C'”在 MySQL 查询中排除 NULL 值?的详细内容。更多信息请关注PHP中文网其他相关文章!

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