値が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ではないかどうかを判定することができる。