メールアドレスを条件にMySQLのカラムを更新する方法
MySQLでは、UPDATE文のWHERE句にメールアドレスなどの条件を指定することで、特定の行だけを対象にカラムの値を更新できます。ここでは、実際の手順をサンプルコードとともに解説します。
1. テーブルの作成
まず、メールアドレスとスコアを格納するテーブルを作成します。
mysql> create table DemoTable
-> (
-> EmailAddress varchar(20),
-> Score int
-> );
Query OK, 0 rows affected (1.05 sec)
2. レコードの挿入
INSERT文を使って、テーブルにいくつかのレコードを追加します。
mysql> insert into DemoTable values('Chris@gmail.com',67);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('Robert@gmail.com',57);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('David@gmail.com',98);
Query OK, 1 row affected (0.14 sec)
3. 現在のデータを確認
SELECT文でテーブル内の全レコードを表示し、更新前の状態を確認しておきましょう。
mysql> select *from DemoTable;
実行すると、次のような結果が出力されます。
+------------------+-------+ | EmailAddress | Score | +------------------+-------+ | Chris@gmail.com | 67 | | Robert@gmail.com | 57 | | David@gmail.com | 98 | +------------------+-------+ 3 rows in set (0.00 sec)
4. メールアドレスを条件にカラムを更新
ここがポイントです。WHERE句でメールアドレスを指定してUPDATE文を実行すると、該当する行のScoreのみが更新されます。
mysql> update DemoTable
-> set Score=89
-> where EmailAddress='Robert@gmail.com';
Query OK, 1 row affected (0.25 sec)
Rows matched: 1 Changed: 1 Warnings: 0
5. 更新結果の確認
もう一度SELECT文でテーブルの中身を確認してみましょう。
mysql> select *from DemoTable;
実行すると、次のようにRobert@gmail.comのスコアだけが「89」に更新されていることがわかります。
+------------------+-------+ | EmailAddress | Score | +------------------+-------+ | Chris@gmail.com | 67 | | Robert@gmail.com | 89 | | David@gmail.com | 98 | +------------------+-------+ 3 rows in set (0.00 sec)
まとめ
このように、UPDATE文とWHERE句を組み合わせれば、メールアドレスなどの一意な値をキーにして、目的の行だけを安全かつ正確に更新できます。WHERE句を忘れるとテーブル全体が更新されてしまうため、実行前には必ず条件の指定を確認しましょう。
-
MySQLで空白(空文字列)の列をNULLに更新する方法
データベースを運用していると、「空文字列()」として登録されてしまったデータを「NULL」に置き換えたいケースによく出会います。NULLと空文字列は似ているようで意味が異なり、検索条件や集計処理に影響を与えるため、統一しておくことが重要です。この記事では、IF()関数とUPDATE文を組み合わせて、空白値の列をNULLに更新する手順を、実際のSQLコードと実行結果付きで解説します。1. サンプルテーブルを作成するまず、動作確認用のテーブルを作成します。ここでは氏名を格納するシンプルなテーブルを用意しました。mysql> create table DemoTable1601 -&g
-
MySQLテーブルの単一カラム(列)を更新する最良の方法
MySQLテーブルの単一の列(カラム)を更新するには、UPDATE文とSET句を使用します。基本的な構文は以下の通りです。UPDATE テーブル名 SET カラム名 = 値;それでは、実際にサンプルテーブルを作成し、動作を確認していきましょう。1. サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable1873 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, &n