关于ansi_nulls的一些事情

use*_*820 2 mysql database

我有一个问题,我们总是说null = null是假的,我想知道当ansi_nulls关闭时,这个语句是"null = null"也是假的吗?谢谢

Mar*_*ams 10

随着ANSI_NULLS OFF,NULL = NULL评估TRUE.

使用ANSI_NULLS ON(默认值),NULL = NULL求值为NULL.

NULL IS NULL总是评估为TRUE.

但是,在MySQL中,您无法关闭ANSI_NULLS.您可能正在考虑使用MS SQL Server.

未来版本的MS SQL Server将不支持ANSI_NULLS OFF,因此我不会使用它.

您应该离开ANSI_NULLS ON并使用它IS NULL来评估某些内容是否为空.

如果您在记住默认情况下NULL的工作方式(ANSI_NULLS ON)时遇到问题,则应将NULL视为" 未知 ".例如,如果房间里有两个陌生人,他们的名字是NULL.如果您的查询是"他们的名字是否相同?" 你的答案是空的.

现在,让我们说鲍勃在房间里只有一个陌生人,他的名字是空的.您的查询的答案是"他们的名字是否相同?" 一片空白.请注意,如果将任何内容与NULL进行比较,则答案为空.