MySQLで列の値がNULLかNOT NULLかを確認する方法
MySQLでは、IS NOT NULL演算子を使うことで、列の値がNULLかどうかを簡単に確認できます。この記事では、基本的な構文と実際の使用例をわかりやすく解説します。
基本構文
select yourColumnName IS NOT NULL from yourTableName;
このクエリは、指定した列の値がNULLでなければ 1 を、NULLであれば 0 を返します。
テーブルの作成
まず、動作確認用のサンプルテーブルを作成しましょう。
mysql> create table DemoTable1408 -> ( -> FirstName varchar(30) -> ); Query OK, 0 rows affected (0.54 sec)
レコードの挿入
次に、insertコマンドを使っていくつかのレコードを挿入します。ここでは、通常の文字列・空文字('')・NULL の3種類のデータを含めています。
mysql> insert into DemoTable1408 values('Chris');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1408 values('');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1408 values(NULL);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1408 values('David');
Query OK, 1 row affected (0.10 sec)レコードの表示
select文ですべてのレコードを表示して確認します。
mysql> select * from DemoTable1408;
実行結果は以下のとおりです。
+-----------+ | FirstName | +-----------+ | Chris | | | | NULL | | David | +-----------+ 4 rows in set (0.00 sec)
NULL / NOT NULL の判定クエリ
それでは、IS NOT NULLを使って各レコードがNULLかどうかをチェックしてみましょう。
mysql> select FirstName IS NOT NULL from DemoTable1408;
実行結果は以下のようになります。
+-----------------------+ | FirstName IS NOT NULL | +-----------------------+ | 1 | | 1 | | 0 | | 1 | +-----------------------+ 4 rows in set (0.00 sec)
結果の読み方
'Chris' や 'David'、そして空文字 '' はNULLではないため 1 が返されています。一方、NULLを挿入したレコードのみ 0 となっています。このように、空文字とNULLは別の扱いになる点に注意してください。
-
MySQLでNULL値を1として表示・更新する方法
MySQLでは、テーブル内のNULL値を別の値(たとえば「1」)に置き換えて扱いたい場面があります。この記事では、IFNULL関数とUPDATE文を組み合わせて、NULL値を1に変換する具体的な手順をサンプルコード付きで解説します。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable1963 ( Counter int ); Query OK, 0 rows affected (0.00 sec) 2. レコードを挿入する INSERT文を使って、NULLを含む複数のレコードを
-
MySQLで列にENUM型を設定する方法
```html MySQLでは、テーブルを作成する際に、あらかじめ決められた文字列のリストから値を選ばせたい列に対してENUM型を設定できます。ENUMは、指定した候補値以外のデータが登録されるのを防ぎたい場合に便利なデータ型です。ここでは、実際にテーブルを作成しながら基本的な使い方を見ていきましょう。ENUM型を含むテーブルを作成するまず、学生の点数と合否ステータスを管理するテーブルを作成します。「StudentStatus」列には「First」「Second」「Fail」の3つの値のみを許可するENUM型を設定しています。mysql> create table DemoTable20