[MySQL] 584. Find Customer Referee

2022. 11. 26. 20:12TIL💡/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에서 등호는 불가능하다.(모르는거지, 같다는 것은 아니다.)