MySQL三值逻辑
- 力扣高频SQL50题(基础)-584题【寻找用户推荐人】
力扣高频SQL50题(基础)-584题【寻找用户推荐人】
最先想到的:
SELECT name FROM customer WHERE referee_Id <> 2;
但事实上
MySQL 使用三值逻辑 —— TRUE, FALSE 和 UNKNOWN。任何与 NULL 值进行的比较都会与第三种值 UNKNOWN 做比较。这个“任何值”包括 NULL 本身!所以 MySQL 提供 IS NULL 和 IS NOT NULL 两种操作来对 NULL 判断,因此这道题正确答案是
SELECT name FROM customer WHERE referee_Id <> 2 or referee_Id is null;