MySQLのUPDATE文で「None」の値を「N/A」に一括置換する方法
MySQLでは、UPDATE文とWHERE句を組み合わせることで、特定の条件に一致するレコードの値を簡単に置き換えることができます。この記事では、テーブル内の「None」という文字列を「N/A」に一括で更新する手順を、実際のSQLコード例とともに解説します。
1. サンプルテーブルを作成する
まず、動作確認用のテーブルを作成しましょう。以下のコマンドを実行します。
mysql> create table DemoTable1903
(
FirstName varchar(20),
LastName varchar(20) ,
Age int
);
Query OK, 0 rows affected (0.00 sec)2. テストデータを挿入する
次に、INSERTコマンドを使ってサンプルレコードを登録します。ここでは、FirstName列に意図的に「None」という値を持つレコードを2件含めています。
mysql> insert into DemoTable1903 values('John','Smith',23);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1903 values('None','Miller',28);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1903 values('None','Taylor',26);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1903 values('Chris','Brown',26);
Query OK, 1 row affected (0.00 sec)3. 現在のレコードを確認する
SELECT文ですべてのレコードを表示し、更新前の状態を確認しておきましょう。
mysql> select * from DemoTable1903;
実行すると、以下のような結果が出力されます。
+-----------+----------+------+ | FirstName | LastName | Age | +-----------+----------+------+ | John | Smith | 23 | | None | Miller | 28 | | None | Taylor | 26 | | Chris | Brown | 26 | +-----------+----------+------+ 4 rows in set (0.00 sec)
4. UPDATE文で「None」を「N/A」に置き換える
いよいよ本題の更新処理です。WHERE句で FirstName = 'None' の条件を指定し、該当する行だけを「N/A」に書き換えます。
mysql> update DemoTable1903 set FirstName='N/A' where FirstName='None'; Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0
実行結果を見ると、「Rows matched: 2 Changed: 2」と表示されており、2件のレコードが正常に更新されたことがわかります。
5. 更新後のレコードを再確認する
最後に、もう一度SELECT文を実行して、更新結果を確認します。
mysql> select * from DemoTable1903;
出力結果は以下の通りです。「None」だった部分がすべて「N/A」に変わっていることが確認できます。
+-----------+----------+------+ | FirstName | LastName | Age | +-----------+----------+------+ | John | Smith | 23 | | N/A | Miller | 28 | | N/A | Taylor | 26 | | Chris | Brown | 26 | +-----------+----------+------+ 4 rows in set (0.00 sec)
まとめ
このように、UPDATE テーブル名 SET 列名='新しい値' WHERE 列名='対象の値' という基本構文を使えば、特定の文字列を別の値へ安全かつ効率的に一括置換できます。NULL値やプレースホルダー的な文字列(例:「None」「Unknown」など)を整理したい場合に非常に便利なテクニックなので、ぜひ活用してみてください。
-
MySQLでNULLを含む列からNULL以外(NOT NULL)の値だけを抽出して表示する方法
MySQLのIS NOT NULLを使ってNULL以外の値のみを表示するMySQLで、NULLとNULL以外のレコードが混在する列からNULL以外の値だけを取得したい場合は、IS NOT NULL演算子を使用します。この記事では、実際にテーブルを作成しながら手順を解説します。1. テーブルの作成まず、日付型の列を持つサンプルテーブルを作成します。mysql> create table DemoTable1 ( DueDate date ); Query OK, 0 ro
-
MySQLの正規表現(REGEXP)で特定パターンの列値だけを更新する方法
UPDATE文とREGEXPを組み合わせた条件付き更新 文字列・数値・特殊文字などが混在する列から、特定のパターンに一致する値だけを更新したい場合には、UPDATEコマンドとREGEXP演算子を組み合わせるのが効果的です。ここでは、数値のみで構成される行を判別し、先頭に「Street」という文字列を連結して更新する例を解説します。 1. サンプルテーブルの作成 まず、次のようにテーブルを作成します。 mysql> create table DemoTable2023 -> ( -> StreetNumber varchar(100) -> );