MySQLのNULL値と空文字の扱いについて
覚え書き的にメモ。データ型はVARCHARの場合です。
SELECT * FROM tbl_name WHERE str = '';
→空文字のみがヒット
SELECT * FROM tbl_name WHERE str != '';
→空文字とNULL値が除外される
SELECT * FROM tbl_name WHERE str IS NULL;
→NULL値のみがヒット
SELECT * FROM tbl_name WHERE str IS NOT NULL;
→値が入っているものと空文字がヒット(NULL値が除外される)
str != '' の挙動が要注意ですね