在MySQL中,IS NOT NULL 和 !=NULL 有显著区别。
主要区别
IS NOT NULL
- 语法:WHERE column IS NOT NULL。
- 这是检查列值是否为非NULL的正确方式。
- 返回TRUE当列包含任何非NULL值。
!=NULL
- 语法上允许但逻辑上不会返回预期结果。
- 这是无效的NULL值比较方式。
- 在SQL中,任何与NULL的比较操作,包括=、!=、>、<,都会返回UNKNOW。
代码示例
IS NOT NULL
SELECT order_id, customer_id, comments
FROM orders
WHERE comments IS NOT NULL;

!= NULL
SELECT order_id, customer_id, comments
FROM orders
WHERE comments != NULL;

为什么会有这种区别
这是因为SQL中 NULL 表示“未知值”,遵循三值逻辑(TRUE,FALSE,UNKNOW)。任何与NULL 的比较都会返回UNKNOW,而WHERE 子句只返回条件为 TRUE的行。
总结
使用IS NULL 或者IS NOT NULL来检查NULL值,不要使用 =NULL 或 != NULL 。
SELECT * FROM table WHERE column IS NOT NULL; --正确,返回非null行
SELECT * FROM table WHERE column != NULL; --错误,不会返回任何行
2146

被折叠的 条评论
为什么被折叠?



