MySQLで特定の列のNULLレコードを削除する方法【DELETE文の使い方】
MySQLでNULLレコードを削除する基本構文
テーブルの特定の列に含まれるNULL値のレコードを削除したい場合は、DELETE文とIS NULL条件を組み合わせて使用します。
基本的な構文は以下の通りです。
DELETE FROM テーブル名 WHERE 列名 IS NULL;
ポイントは、NULLの判定に「= NULL」ではなく「IS NULL」を使うことです。NULLは値そのものではないため、比較演算子では正しく判定できません。
サンプルテーブルの作成
まず、動作確認用のテーブルを作成します。
mysql> create table removeNullRecordsDemo
-> (
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.50 sec)
テストデータの挿入
INSERTコマンドを使って、NULLを含む複数のレコードを挿入します。
mysql> insert into removeNullRecordsDemo values('John');
Query OK, 1 row affected (0.14 sec)
mysql> insert into removeNullRecordsDemo values(null);
Query OK, 1 row affected (0.15 sec)
mysql> insert into removeNullRecordsDemo values('Larry');
Query OK, 1 row affected (0.19 sec)
mysql> insert into removeNullRecordsDemo values('Bob');
Query OK, 1 row affected (0.12 sec)
mysql> insert into removeNullRecordsDemo values(null);
Query OK, 1 row affected (0.13 sec)
mysql> insert into removeNullRecordsDemo values('David');
Query OK, 1 row affected (0.18 sec)
mysql> insert into removeNullRecordsDemo values(null);
Query OK, 1 row affected (0.22 sec)現在のデータを確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from removeNullRecordsDemo;
実行結果は以下の通りです。3件のNULLレコードが含まれていることがわかります。
+-------+
| Name |
+-------+
| John |
| NULL |
| Larry |
| Bob |
| NULL |
| David |
| NULL |
+-------+
7 rows in set (0.00 sec)
NULLレコードを削除する実行例
それでは、Name列がNULLのレコードを削除します。
mysql> delete from removeNullRecordsDemo where Name IS NULL;
Query OK, 3 rows affected (0.16 sec)
「3 rows affected」と表示されており、NULLレコード3件が正常に削除されました。
削除結果の確認
再度SELECT文を実行して、NULLレコードが消えているか確認しましょう。
mysql> select * from removeNullRecordsDemo;
実行結果は以下の通りです。NULL以外のレコードだけが残っています。
+-------+
| Name |
+-------+
| John |
| Larry |
| Bob |
| David |
+-------+
4 rows in set (0.00 sec)
まとめ
- NULLレコードの削除には
DELETE FROM テーブル名 WHERE 列名 IS NULL;を使用する - NULLの判定には必ず IS NULL を使う(= NULL では判定不可)
- WHERE句を忘れると全レコードが削除されるため注意が必要
この方法を使えば、テーブル内の不要なNULLデータを簡単に一括クリーンアップできます。削除は元に戻せない操作なので、実行前には必ずSELECT文で対象レコードを確認することをおすすめします。
-
MySQLで通貨形式を表示する方法:FORMAT()関数の使い方を解説
MySQLで通貨形式を設定する方法MySQLでは、FORMAT()関数を使うことで、数値データを通貨として見やすい形式に整形して表示できます。この記事では、実際にテーブルを作成し、金額データを「USD 90,948,484.00」のような通貨表記へ変換する手順を、サンプルコード付きでわかりやすく解説します。1. サンプルテーブルを作成するまず、金額を格納するためのテーブルを作成します。ここでは、小数点以下4桁まで保持できるDECIMAL型を使用します。mysql> create table DemoTable -> ( &nb
-
MySQLで末尾のスペースを削除する方法:RTRIM()関数の使い方
MySQLで文字列の末尾(右側)のスペースを削除したい場合は、RTRIM()関数を使用します。この記事では、実際にテーブルを作成し、データを挿入して、RTRIM()を使って末尾の余分なスペースを取り除く手順を解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> FirstName varchar(50) -> ); Query OK, 0 rows affected (1.38 sec)ここでは、FirstNameというvarchar型のカラムを