【MySQL】空の値(空文字列)をNULLに変換するUPDATEクエリの書き方
MySQLでは、UPDATE文のSET句とWHERE句を組み合わせるだけで、カラムに入っている空の値(空文字列)をNULLへ簡単に変換できます。ここからは、実際のサンプルを使って手順を詳しく解説していきます。
1. サンプルテーブルを作成する
まず、以下のコマンドでテーブルを作成しましょう。
mysql> create table DemoTable1315 -> ( -> CountryName varchar(10) -> ); Query OK, 0 rows affected (0.60 sec)
2. レコードを挿入する
次に、INSERTコマンドでレコードを挿入します。このとき、意図的にいくつか空の値('')も含めています。
mysql> insert into DemoTable1315 values('US');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1315 values('');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1315 values('UK');
Query OK, 1 row affected (0.70 sec)
mysql> insert into DemoTable1315 values('');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1315 values('');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1315 values('AUS');
Query OK, 1 row affected (0.14 sec)
テーブルの中身を確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable1315;
出力結果:
+-------------+ | CountryName | +-------------+ | US | | | | UK | | | | | | AUS | +-------------+ 6 rows in set (0.00 sec)
このように、3つのレコードには空の値が格納されています。
3. 空の値をNULLに変換するクエリ
それでは本題です。WHERE句で空文字列を条件として指定し、SET句でNULLを代入することで、空の値をNULLに変換できます。
mysql> update DemoTable1315 set CountryName=NULL where CountryName=''; Query OK, 3 rows affected (0.16 sec) Rows matched: 3 Changed: 3 Warnings: 0
変換後のテーブルを確認する
もう一度SELECT文を実行して、正しく変換されたか確認しましょう。
mysql> select *from DemoTable1315;
出力結果:
+-------------+ | CountryName | +-------------+ | US | | NULL | | UK | | NULL | | NULL | | AUS | +-------------+ 6 rows in set (0.00 sec)
すべての空の値がNULLに置き換わっていることが確認できました。
まとめ
空の値をNULLに変換するには、「UPDATE テーブル名 SET カラム名=NULL WHERE カラム名=''」という形式のクエリを使います。SQLにおいて空文字列('')とNULLは別のものとして扱われるため、データクレンジングやデータ整理の場面で、この手法は非常に役立ちます。
-
MySQLでタイムスタンプを月に変換するクエリの書き方
タイムスタンプを月に変換する基本構文MySQLでタイムスタンプ(UNIXタイムスタンプ)を月に変換するには、FROM_UNIXTIME()関数とMONTH()関数を組み合わせて使用します。基本的な構文は以下の通りです。select month(from_unixtime(yourColumnName)) from yourTableName;FROM_UNIXTIME()関数がUNIXタイムスタンプを日時形式に変換し、その結果に対してMONTH()関数を適用することで、月の数値(1〜12)を取得できます。サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> cr
-
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を含む複数のレコードを