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

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文で対象レコードを確認することをおすすめします。

  1. MySQLで通貨形式を表示する方法:FORMAT()関数の使い方を解説

    MySQLで通貨形式を設定する方法MySQLでは、FORMAT()関数を使うことで、数値データを通貨として見やすい形式に整形して表示できます。この記事では、実際にテーブルを作成し、金額データを「USD 90,948,484.00」のような通貨表記へ変換する手順を、サンプルコード付きでわかりやすく解説します。1. サンプルテーブルを作成するまず、金額を格納するためのテーブルを作成します。ここでは、小数点以下4桁まで保持できるDECIMAL型を使用します。mysql> create table DemoTable    -> ( &nb

  2. MySQLで末尾のスペースを削除する方法:RTRIM()関数の使い方

    MySQLで文字列の末尾(右側)のスペースを削除したい場合は、RTRIM()関数を使用します。この記事では、実際にテーブルを作成し、データを挿入して、RTRIM()を使って末尾の余分なスペースを取り除く手順を解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> FirstName varchar(50) -> ); Query OK, 0 rows affected (1.38 sec)ここでは、FirstNameというvarchar型のカラムを