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

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: 0

WHERE句で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句で対象行を適切に絞り込むことを忘れないようにしましょう。

  1. MySQLで1つのクエリを使ってSELECTとINSERTを同時に実行する方法

    MySQLでは、INSERT INTO ... SELECT構文とUNION ALLを組み合わせることで、1つのクエリだけで別テーブルからデータを選択(SELECT)し、挿入(INSERT)することができます。本記事では、実際のサンプルコードを使ってその手順をわかりやすく解説します。1. 最初のテーブルを作成するまず、データの挿入先となる最初のテーブルを作成します。以下のクエリを実行してください。mysql> create table DemoTable1 -> ( -> StudentName varchar(20), -> StudentMarks

  2. MySQLのUPDATE文で1つのクエリを使って複数のレコードを更新する方法

    MySQLでは、UPDATEステートメントを使うことで、1つのクエリで複数のカラムや複数のレコードの値をまとめて更新できます。この記事では、実際にサンプルテーブルを作成し、UPDATE文でデータを更新する具体的な手順を解説します。サンプルテーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable     -> (     -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    &