Mysql 关于ansi_nulls的一些事情

Mysql 关于ansi_nulls的一些事情,mysql,database,Mysql,Database,我有一个问题,我们总是说null=null是假的,我想知道,当ansi_nulls离开这个语句时,“null=null”也是假的?感谢在ANSI_NULLS关闭时,NULL=NULL计算结果为TRUE 当ANSI_NULLS打开时(默认设置),NULL=NULL计算结果为NULL NULL为NULL始终计算为TRUE 但是,在MySQL中,不能关闭ANSI_null。您可能想到的是MS SQL Server MS SQL Server的未来版本将不支持ANSI_NULLS OFF,因此我不会使用

我有一个问题,我们总是说null=null是假的,我想知道,当ansi_nulls离开这个语句时,“null=null”也是假的?感谢在
ANSI_NULLS关闭时
NULL=NULL
计算结果为
TRUE

ANSI_NULLS打开时(默认设置),
NULL=NULL
计算结果为
NULL

NULL为NULL
始终计算为
TRUE

但是,在MySQL中,不能关闭ANSI_null。您可能想到的是MS SQL Server

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

您应该将
ANSI_NULLS保留在
上,并使用
IS NULL
来评估某个内容是否为NULL

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

现在,假设鲍勃和一个陌生人在房间里,他的名字是空的。同样,对您的查询“他们的名字相同吗?”的回答为空。请注意,如果您将任何内容与NULL进行比较,则您的答案为NULL。

禁用时,NULL=NULL将返回true

例如

给你:

1

NULL=NULL使用3值逻辑计算为未知而不是false。NOT(NULL=NULL)不是真的。
1