roc*_*iiu 24 mysql sql null sql-delete
什么delete from table where NULL = NULL意思?
Cox*_*oxy 37
这将从表中删除任何内容.NULL不等于NULL.
现在
从表中删除NULL为NULL
将删除表中的所有行.
hob*_*bbs 16
这意味着不要删除任何东西,因为NULL永远不会等于任何东西.或者它可能意味着"除非用户的DBMS真的很糟糕,否则不要删除任何东西,在这种情况下,将所有内容全部删除".
但是,严肃地说,当程序生成WHERE子句时,通常会出现这种构造 - 而不是为"什么都不做"创建一个特殊情况,有时候生成一个导致数据库什么也不做的WHERE子句更简单.我经常看到"WHERE 0 = 1",但不那么含糊.
在SQL中,有三个逻辑值,即TRUE,FALSE和UNKNOWN.当我们将null与null进行比较时,使用null = null,操作将返回UNKNOWN.此外,在WHERE子句中,所有UNKNOWN值都被过滤掉.因此查询不执行任何操作.