當我們想要找出某些欄位是 NULL 的資料…
做為資料工作者,在處理資料的時候經常會遇到所謂的空值「NULL」,也常看到這樣的值被存在資料庫的欄位中,當我們使用 SQL 想要找出某些欄位中是空值的資料,就會使用像下方這樣的 WHERE 去做篩選,但這樣其實無法得到我們想要的結果。
SELECT
column_1,
column_2
FROM `my_table`
WHERE column_1 = NULL
NULL 值代表的其實是 Unknown
這是因為 NULL 在資料庫代表是 Unknown,任何的值在使用 Operator (像是 =, !=) 去跟 Unknown 做比較的時候也都會是 Unknown (也就是 Not True),所以結果一定都會回傳 False,導致我們的 Where 篩選無效。
正確用法是要使用 IS NULL / IS NOT NULL,所以上方的 SQL 可以改成
SELECT
column_1,
column_2
FROM `my_table`
WHERE column_1 IS NULL