MySQLの1つのUPDATE文で2つの列を同時に更新する方法
はじめに
MySQLでは、1つのUPDATE文の中でSET句を一度だけ使えば、複数の列を同時に更新できます。各列の指定はカンマ(,)で区切って記述します。この記事では、実際にテーブルを作成し、1つのクエリで2つの列(FirstNameとLastName)を更新する手順を解説します。
サンプルテーブルの作成
まず、以下のようにCREATE TABLE文でテーブルを作成します。
mysql> create table DemoTable1909
(
Id int NOT NULL,
FirstName varchar(20),
LastName varchar(20)
);
Query OK, 0 rows affected (0.00 sec)テストデータの挿入
次に、INSERT文を使ってレコードを挿入します。
mysql> insert into DemoTable1909 values(101,'John','Smith'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1909 values(102,'John','Doe'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1909 values(103,'Adam','Smith'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1909 values(104,'David','Miller'); Query OK, 1 row affected (0.00 sec)
登録データの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable1909;
実行すると、以下のような結果が表示されます。
+-----+-----------+----------+ | Id | FirstName | LastName | +-----+-----------+----------+ | 101 | John | Smith | | 102 | John | Doe | | 103 | Adam | Smith | | 104 | David | Miller | +-----+-----------+----------+ 4 rows in set (0.00 sec)
1つのクエリで2つの列を更新する
それでは、SET句を一度だけ使って、FirstNameとLastNameの2つの列を同時に更新してみましょう。ポイントは、列名=値 のペアをカンマで区切って記述することです。
mysql> update DemoTable1909
set FirstName='Carol',LastName='Taylor'
where Id=103;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0WHERE句でId=103のレコードを指定しているため、該当する1行のみが更新されました。
更新結果の確認
もう一度SELECT文を実行して、更新が正しく反映されているか確認します。
mysql> select * from DemoTable1909;
実行結果は以下の通りです。Id=103のレコードの名前が「Carol Taylor」に変更されていることがわかります。
+-----+-----------+----------+ | Id | FirstName | LastName | +-----+-----------+----------+ | 101 | John | Smith | | 102 | John | Doe | | 103 | Carol | Taylor | | 104 | David | Miller | +-----+-----------+----------+ 4 rows in set (0.00 sec)
まとめ
このように、MySQLで複数の列を更新する場合は、SET句を1回だけ記述し、更新したい「列名=新しい値」のペアをカンマで区切って並べるだけで実現できます。SETを列ごとに繰り返し書く必要はないので、覚えておくと便利です。また、意図しないレコードまで更新してしまわないよう、WHERE句で対象行を適切に絞り込むことを忘れないようにしましょう。
-
MySQLで1つのクエリを使ってSELECTとINSERTを同時に実行する方法
MySQLでは、INSERT INTO ... SELECT構文とUNION ALLを組み合わせることで、1つのクエリだけで別テーブルからデータを選択(SELECT)し、挿入(INSERT)することができます。本記事では、実際のサンプルコードを使ってその手順をわかりやすく解説します。1. 最初のテーブルを作成するまず、データの挿入先となる最初のテーブルを作成します。以下のクエリを実行してください。mysql> create table DemoTable1 -> ( -> StudentName varchar(20), -> StudentMarks
-
MySQLのUPDATE文で1つのクエリを使って複数のレコードを更新する方法
MySQLでは、UPDATEステートメントを使うことで、1つのクエリで複数のカラムや複数のレコードの値をまとめて更新できます。この記事では、実際にサンプルテーブルを作成し、UPDATE文でデータを更新する具体的な手順を解説します。サンプルテーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, &