Leetcode之584.寻找用户推荐人 - 为什么用or而不是and

题目链接:584. 寻找用户推荐人 - 力扣(LeetCode)

解题思路:

1、最开始看到这样的题目我还觉得挺简单的,不就是so easy嘛,就直接写出了以下答案

select name from Customer where referee_id !=2;

结果呢,库库报错

后来查阅了资料才发现这道题重点是对于Null值的处理

1.null是不可以进行大小比较的。

2.null表示未知,不确定,并不是表示空值。

3.在SQL中进行条件判断的时候,等号表示的是数值上的等价,is 更多表示的是一种属性。没有数值的时候,该字段就是空的

所以后来就又改了一下代码

select name from Customer where referee_id !=2 and referee_id is null

还是报错:

当时就很纳闷,怎么就又错了呢?

后来看了一下其他人的分析才知道不能用and,要用or,代码如下:

select name from Customer where referee_id !=2 or referee_id is null

我就在想,既然第一次设定条件不等于2了,结果应该已经不包含2了(当然是运行不成功的),那么为什么还要用or(或者)呢?

or的用法不就是两者选择一个,前者是没有把null给计算出来,后边不是得需要用and把referee_id 是 null的条件给添加上去吗?为什么用or呢?
运行结果如下

求网友解答:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值