获得徽章 0
关注了
coder_pig
VIP.5 如鱼得水
关注了
恋猫de小郭
VIP.5 如鱼得水
赞了这篇沸点
SQL中 IS NOT NULL 与 != NULL 的区别


在SQL中,NULL代表无值,与0、空字符串或仅仅字段包含空格不同。在使用WHERE语句搭配=,!=,>,<等这些操作符对数据进行过滤时,由于NULL具有特殊的含义,数据库不知道它们是否匹配,所以都不会返回为NULL的数据。所以=,!=等这些操作符只能与具有特定值的数据进行比较,所以即便有一些值NULL,使用= NULL 和 !=NULL都不会返回会这些为NULL的值,这是一种错误的写法。

如果我们想要获得值为NULL的数据,我们应该使用IS NULL

如果我们想要获得值不为NULL的数据,我们应该使用IS NOT NULL

假如有这样一个表

| id | value |
| ---- | ----- |
| 1 | 100 |
| 2 | 200 |
| 3 | NULL |

当我们想要对获取NULL值数据或者是过滤NULL数据时,如果我们按下面这样写

SELECT * from table WHERE value = NULL;
SELECT * from table WHERE value != NULL;

那么都没有结果返回。

只有当使用IS NULL,IS NOT NULL才能正确地对NULL值数据进行过滤。

SELECT * from table WHERE value IS NULL;

返回结果如下:

| id | value |
| ---- | ----- |
| 3 | NULL |

SELECT * from table WHERE value IS NOT NULL;

返回结果如下:

| id | value |
| ---- | ----- |
| 1 | 100 |
| 2 | 200 |
展开
12
赞了这篇沸点
请问B站移动端网页的顶栏颜色是怎么实现的呢?(chrome)
AleCC于2019-06-26 10:02发布的图片
4
下一页