SQLでNULLのカラムを含む行を検索するには「WHERE カラム名=NULL」ではなく「WHERE カラム名 IS NULL」を使います。
SQLでNULLのカラムを検索
SQLでNULLのカラムを検索するにはIS NULL 演算子を使います。
イコール(=)で検索
SELECT * FROM test_table WHERE name = NULL
これは正しい結果取得できません。
[st-mybox title=”注意” fontawesome=”fa-exclamation-circle” color=”#ef5350″ bordercolor=”#ef5350″ bgcolor=”#ffebee” borderwidth=”2″ borderradius=”5″ titleweight=”bold”]「WHERE カラム名=NULL」では検索できません。[/st-mybox]
IS NULL演算子で検索
「=(イコール)」ではなく「IS NULL演算子」を利用して検索します。
CREATE TABLE test_table( name VARCHAR(20)) INSERT INTO test_table ( name ) VALUES( '太郎さん' ) INSERT INTO test_table ( name ) VALUES( NULL ) SELECT * FROM test_table WHERE name = NULL --① SELECT * FROM test_table WHERE name IS NULL --② SELECT * FROM test_table WHERE name != NULL --③ SELECT * FROM test_table WHERE name IS NOT NULL--④ DROP TABLE test_table
で
①の結果
name |
---|
②の結果
name |
---|
NULL |
③の結果
name |
---|
④の結果
name |
---|
太郎さん |
になります。
(「NULLでない」は「IS NOT NULL演算子」を利用します。)