在SQL中,a = null和a is null两者间存在区别:
- a = null这个表达式其实是不会返回真或假的,这是由NULL的特殊性质决定的,因为NULL表示值未知或者不存在。因此,即使a的值为NULL,执行a = null时结果也不是TRUE或FALSE,而是unknown。
- a is null表示a的值为NULL,简单明了。
因此,a is null是判断a是否为NULL的首选方式。而对于a = null,则需要用IS NULL或IS NOT NULL代替。例如:
SELECT * FROM table WHERE col IS NULL;
SELECT * FROM table WHERE col IS NOT NULL;
而以下操作在SQL中是无效的:
SELECT * FROM table WHERE col = NULL;
SELECT * FROM table WHERE col != NULL;