作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个问题,我们总是说 null =null 是假的,我想知道当 ansi_nulls 关闭时,这个声明“null=null”也是假的?谢谢
最佳答案
当 ANSI_NULLS OFF
时,NULL = NULL
的计算结果为 TRUE
。
ANSI_NULLS ON
(默认),NULL = NULL
计算为 NULL
。
NULL IS NULL
的计算结果始终为 TRUE
。
但是,在 MySQL 中,您无法关闭 ANSI_NULLS。您可能会想到 MS SQL Server。
future 版本的 MS SQL Server 将不支持 ANSI_NULLS OFF
,所以我不会使用它。
您应该保留 ANSI_NULLS ON
并使用 IS NULL
来评估某些内容是否为 NULL。
如果您难以记住默认情况下 NULL 的工作方式(ANSI_NULLS ON),您应该将 NULL 视为“未知”。例如,如果房间里有两个陌生人,他们的名字是 NULL。如果您的问题是“他们的名字相同吗?”你的答案是 NULL。
现在,假设 Bob 和一个陌生人在房间里,他的名字是 NULL。再次回答您的问题“他们的名字相同吗?”一片空白。请注意,如果您将任何内容与 NULL 进行比较,则您的答案为 NULL。
关于mysql - 关于 ansi_nulls 的一些事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2747279/
我是一名优秀的程序员,十分优秀!