Sister Nosilv story

[TIL 21th] LeetCode 584. Find Customer Referee

by 노실언니


[문제 링크] [솔루션 링크]

Customer 테이블에서 referee_id 컬럼의 값이 2가 아닌 고객들의 이름을 찾으라는 아주 쉬워보이는 문제이다.

SELECT name  FROM Customer  WHERE referee_id <> 2  로 제출했는데 성공하지 못하고 덜걱거려서 글로 남겨둔다.

 

MySQL 은 3가지의 논리값을 가진다; TRUE, FALSE 그리고 UNKNOWN.

NULL과 2가 같은지 비교할 때, NULL도 결국 2와 다른 값이니 FALSE 가 나올 거라고 직감적으로 생각했지만,

NULL 과의 비교는 항상 UNKNOWN이 나온다고 한다.

NULL 과 제대로 비교하는 명령어 IS NULLIS NOT NULL 이 존재하는 이유라고 한다.

 

그러니까,

SELECT name  FROM Customer  WHERE referee_id <> 2  이거 말고

SELECT name  FROM Customer  WHERE referee_id <> 2 OR referee_id IS NULL  이게 답!

블로그의 프로필 사진

블로그의 정보

노력하는 실버티어

노실언니

활동하기