[MySQL] 584. Find Customer Referee
2022. 11. 26. 20:12ㆍTIL💡/Database
테이블에서 referee_id 가 2가 아닌 경우를 선택하면 돼서, 처음에는 아래와 같이 작성했다.
SELECT name FROM customer WHERE referee_Id <> 2;
하지만 이 쿼리는 NULL 값(즉 누구에게도 referred 되지 않은 경우)는 선택되지 않는다.
따라서 NULL 값은 따로 선택해야 한다.
SELECT name FROM customer WHERE referee_id <> 2 OR referee_id IS NULL;
MySQL의 경우는 3가지의 로직이 존재한다.(TRUE, FALSE, UNKNOWN → NULL)
NULL은 말 그대로 anything이다.
그것이 바로 MySQL이 IS NULL과 IS NOT NULL을 제공하는 이유이다.
SELECT name FROM customer WHERE referee_id = NULL OR referee_id <> 2;
그래서 NULL에서 등호는 불가능하다.(모르는거지, 같다는 것은 아니다.)
'TIL💡 > Database' 카테고리의 다른 글
[MySQL] 1873. Calculate Special Bonus (0) | 2022.11.27 |
---|---|
[MySQL] 176. Second Highest Salary (0) | 2022.11.26 |
[MySQL] 597. Friend Requests I: Overall Acceptance Rate (0) | 2022.11.26 |
[MySQL] 596. Classes More Than 5 Students(GROUP BY, HAVING) (0) | 2022.11.26 |
[MongoDB] Index의 자료구조는 무엇일까? B-Tree (0) | 2022.10.15 |