MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでカラムがNULLまたは空文字かどうかを確認する方法

MySQLでカラム(列)がNULLか、あるいは空文字(空の値)かどうかを確認するには、WHERE句とIS NULLを組み合わせて使用します。空文字の判定には、条件として''(空の文字列)を指定します。

この記事では、実際にテーブルを作成しながら、NULLと空文字を判定する手順を具体的に解説します。

1. テーブルの作成

まず、CREATE文を使ってテーブルを作成します。

mysql> CREATE table ColumnValueNullDemo
-> (
-> ColumnName varchar(100)
-> );
Query OK, 0 rows affected (0.61 sec)

2. 空文字データの挿入

次に、INSERT文を使って空文字の値をテーブルに挿入します。

mysql> INSERT into ColumnValueNullDemo values(' ');
Query OK, 1 row affected (0.14 sec)

3. テーブルの内容を確認

SELECT文でテーブルのレコードを表示してみましょう。

mysql> SELECT * from ColumnValueNullDemo;

上記のクエリを実行すると、以下のような結果が得られます。

+-------------------+
| ColumnName        |
+-------------------+
|                   |
+-------------------+
1 row in set (0.00 sec)

4. NULLまたは空文字を判定する構文

カラムがNULL値または空文字であるかを確認するには、以下の構文を使用します。

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

ポイントは次のとおりです。

  • IS NULL:カラムがNULLの場合に真となる制約
  • = '':カラムが空文字(空の値)の場合に真となる条件

この2つの条件をORで組み合わせることで、NULLと空文字のどちらにも該当するレコードを一度に抽出できます。

5. 空文字の判定を実行

実際に上記の構文を使ったクエリが以下のとおりです。

mysql> SELECT * FROM ColumnValueNullDemo WHERE ColumnName IS NULL OR
ColumnName = ' ';

実行結果は次のようになります。

+------------+
| ColumnName |
+------------+
|            |
+------------+
1 row in set (0.00 sec)

この結果が得られたのは、2つ目の条件(空文字との比較)が真と判定されたためです。

6. NULLデータの挿入

続いて、INSERT文でNULL値をテーブルに挿入します。

mysql> INSERT into ColumnValueNullDemo values();
Query OK, 1 row affected (0.14 sec)

再度SELECT文でテーブルの内容を確認してみましょう。

mysql> SELECT * from ColumnValueNullDemo;

実行結果は以下のとおりです。

+------------+
| ColumnName |
+------------+
|            |
| NULL       |
+------------+
2 rows in set (0.00 sec)

7. NULLと空文字の両方を判定

最後に、NULLまたは空文字を判定する条件を適用します。

mysql> SELECT * FROM ColumnValueNullDemo WHERE ColumnName IS NULL OR
ColumnName = '';

実行結果:

+------------+
| ColumnName |
+------------+
|            |
| NULL       |
+------------+
2 rows in set (0.00 sec)

今回はテーブル内の2行すべてが出力されました。これは、NULLの行も空文字の行も、どちらの条件にも該当するためです。

まとめ

MySQLでカラムがNULLか空文字かを確認するには、IS NULL= ''をOR条件で組み合わせるのが基本的な方法です。データクレンジングや入力値のバリデーションなど、実務でもよく使われるテクニックなので、ぜひ覚えておきましょう。

  1. MySQLで列(カラム)を分割する方法!SUBSTRING_INDEX関数の使い方を徹底解説

    MySQLで列を分割するには?SUBSTRING_INDEX関数の基本MySQLで1つの列に格納された文字列を区切り文字で分割したい場合、SUBSTRING_INDEX()関数を使用します。この記事では、アンダースコア(_)で区切られた氏名データを分割する具体例を通じて、その使い方をわかりやすく解説します。1. サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable -> ( -> Name varchar(40) -> );Query OK, 0 rows affected (1.

  2. MySQLのバージョンを確認する方法をわかりやすく解説

    この記事では、現在利用しているMySQLサーバーのバージョンを確認する方法について詳しく解説します。コンソールでクエリを実行する前に、まずクライアントがサーバーに正しく接続されていることを確認しておきましょう。接続が確立されていないと、クエリを実行しても結果を取得できません。MySQLのバージョンを確認する基本クエリ以下のクエリを実行すると、使用中のサーバーのバージョン番号と、実行時点の日付を同時に取得できます。mysql> SELECT VERSION(), CURRENT_DATE;ポイント: 関数「VERSION()」や「CURRENT_DATE」は大文字・小文字を区別しません。つ