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

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件のレコードが正常に更新されたことがわかります。

ポイント: WHERE句を忘れると、テーブル内のすべての行が更新されてしまうため注意が必要です。必ず条件を指定してから実行しましょう。

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」など)を整理したい場合に非常に便利なテクニックなので、ぜひ活用してみてください。

  1. 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

  2. MySQLの正規表現(REGEXP)で特定パターンの列値だけを更新する方法

    UPDATE文とREGEXPを組み合わせた条件付き更新 文字列・数値・特殊文字などが混在する列から、特定のパターンに一致する値だけを更新したい場合には、UPDATEコマンドとREGEXP演算子を組み合わせるのが効果的です。ここでは、数値のみで構成される行を判別し、先頭に「Street」という文字列を連結して更新する例を解説します。 1. サンプルテーブルの作成 まず、次のようにテーブルを作成します。 mysql> create table DemoTable2023 -> ( -> StreetNumber varchar(100) -> );