사용자 테이블에서 휴대폰 번호가 안 들어간 행을 찾으려고 IS NULL을 걸었는데 아무것도 안 나온 적이 있다. 분명 화면에는 비어 보이는데 말이다.원인은 단순했다. 그 컬럼에 들어 있던 건 NULL이 아니라 빈 문자열이었다. IS NULL 같은 문법이 있을 줄 알고 IS EMPTY를 찾았는데, 그런 건 없고 그냥 이렇게 하면 된다.SELECT * FROM users WHERE mobile = '';NULL과 빈 문자열은 완전히 다른 값이다둘 다 "값이 없다"처럼 보이지만 DB 입장에서는 전혀 다르다.NULL: 값이 존재하지 않음. "모른다"에 가깝다.빈 문자열(''): 길이가 0인 문자열이라는 값이 존재한다.그래서 이런 결과가 나온다.SELECT NULL = ''; -- NULL (true..
개발/SQL
2020. 1. 9. 13:22
