データベースにおいて、NULLは特別です!
そのためWHERE句に条件としてNULLを指定する場合、
・「WHERE 列名XX IS NULL」
と記載します!
「WHERE 列名XX = NULL」と記載するのは
間違いです!
※このように記載してもエラーにならないため、間違いに気付き辛いです。
気を付けましょう。
「IS NULL」とは
「式(列など)」がNULLかどうかを判定します。
※「値」ではなく「式(列など)」です。
SQL
例として、
・テーブル「m_product」から
・列「price」が「NULL」のデータ
を取得します。
SELECT
*
FROM
m_product
WHERE price IS NULL
実行結果
列「price」が「NULL」のデータを取得することが出来ました。
備考(NOT演算子との組み合わせ)
IS NULLとNOT演算子を組み合わせることで、例えば
・列「price」が「NULL」以外のデータ
を取得することができます。
SELECT
*
FROM
m_product
WHERE price IS NOT NULL
NULLについて
冒頭に記載した通り、データベースにおいてNULLは特別です。
詳細は以下の「NULLにまつわる諸問題」に詳しく記載いただいております。