MySQLで値がNULLかどうかを判定する(is null や is not null の使い方)

値がNULLかどうかを判定するには「IS NULL」句や「IS NOT NULL」句を使います。

ここでは MySQLコマンド「IS NULL」や「IS NOT NULL」の具体的な使い方を解説していきます。

 

「IS NULL」や「IS NOT NULL」の基本

「IS NULL」や「IS NOT NULL」は、「WHERE」などと組み合わせて条件式で使います。

 

「IS NULL」のコマンド例

これで指定したカラム名の値が NULL のデータを検索できます。

SELECT * FROM テーブル名 WHERE カラム名 IS NULL;

 

「IS NOT NULL」のコマンド例

これで指定したカラム名の値が NULL ではないデータを検索できます。

SELECT * FROM テーブル名 WHERE カラム名 IS NOT NULL;
メモ

SELECT 文の詳しい使い方はこちら

 

値が NULL のデータを検索する

実際にMySQLサーバーに接続し、動作を確認してみましょう。

 

あらかじめ「test」データベースの「users」テーブルに、以下のようにデータが保存されている例で進めていきます。

name age
佐藤 21
鈴木 25
田中 (NULL)

※「NULL」は値がないフィールド 

データを保存するコマンド例

CREATE DATABASE test;
USE test;
CREATE TABLE users (name VARCHAR(100), age INT);
INSERT INTO users (name, age) VALUES ('佐藤', 21);
INSERT INTO users (name, age) VALUES ('鈴木', 25);
INSERT INTO users (name) VALUES ('田中');
メモ

CREATE DATABASE 文の詳しい使い方はこちら

USE 文の詳しい使い方はこちら

CREATE TABLE 文の詳しい使い方はこちら

INSERT INTO 文の詳しい使い方はこちら

 

それでは「age」カラムの値が NULL のデータを検索してみましょう。コマンドは以下。

SELECT * FROM users WHERE age IS NULL;

 

コマンドを実行すると、以下のように「age」カラムの値が NULL のデータだけが表示されました。

 

値が NULL ではないデータを検索する

今度は「age」カラムの値が NULL ではないデータを検索してみましょう。コマンドは以下。

SELECT * FROM users WHERE age IS NOT NULL;

コマンドを実行すると、以下のように「age」カラムの値が NULL ではないデータだけが表示されました。

 

ここまでが「IS NULL」や「IS NOT NULL」の基本!

理解をさらに深めたい方は以下からの内容もご覧ください。

 

NULLとの比較は「=」演算子を使えない

余談ですが、以下のように NULL は「=」演算子を使って比較することができません。

SELECT * FROM users WHERE age = NULL;

 

NULL のデータがテーブルに存在するにも関わらず、結果はデータがひとつも該当しませんでした。

 

まとめ

以上、MySQLコマンド「IS NULL」や「IS NOT NULL」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「IS NULL」で値がNULLかどうかを判定することができる。
  • 「IS NOT NULL」で値がNULLではないかどうかを判定することができる。