【MySQL】【数据库】sql的null不能用等号
LeetCode 584. 寻找用户推荐人
直达
给定表 customer ,里面保存了所有客户信息和他们的推荐人。
| id | name | referee_id |
|---|---|---|
| 1 | Will | NULL |
| 2 | Jane | NULL |
| 3 | Alex | 2 |
| 4 | Bill | NULL |
| 5 | Zack | 1 |
| 6 | Mark | 2 |
写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。
对于上面的示例数据,结果为:
| name |
|---|
| Will |
| Jane |
| Bill |
| Zack |
我的代码
select name from customer where (not(referee_id=2) or referee_id is null)
一开始直接写的!(referee_id=2),不对,因为NULL不能与数字作等于比较
后来改成referee_id=null,语句不对,因为什么情况下null都不能用等号
要写is null
其他思路
由于null不能比较,所以可以多一步把null转成0(当然不对原始数据做改动)
select name
from customer
where ifnull(referee_id,0)<>2

浙公网安备 33010602011771号