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

MySQLで1行の複数列を同時に更新する方法

MySQLでは、UPDATE文を使うことで、1つの行に対して複数の列をまとめて更新できます。SET句に「列名 = 値」をカンマ区切りで並べるだけで、複数の列を一度に変更可能です。この記事では、実際のサンプルを使いながら手順をわかりやすく解説します。

1. テーブルを作成する

まずはサンプル用のテーブルを作成します。

mysql> create table DemoTable
    -> (
    -> FirstName varchar(100),
    -> Age int,
    -> Score int
    -> );
Query OK, 0 rows affected (0.62 sec)

2. レコードを挿入する

INSERTコマンドを使用して、テーブルにいくつかのレコードを追加します。

mysql> insert into DemoTable values('Robert',21,78);
Query OK, 1 row affected (0.10 sec)

mysql> insert into DemoTable values('Bob',20,90);
Query OK, 1 row affected (0.21 sec)

mysql> insert into DemoTable values('Sam',22,69);
Query OK, 1 row affected (0.20 sec)

3. 現在のデータを確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

出力結果

+-----------+------+-------+
| FirstName | Age  | Score |
+-----------+------+-------+
| Robert    | 21   | 78    |
| Bob       | 20   | 90    |
| Sam       | 22   | 69    |
+-----------+------+-------+
3 rows in set (0.00 sec)

4. 複数列を1つのUPDATE文で更新する

ここがポイントです。以下のクエリでは、「FirstName」が「Bob」である行だけを対象に、Age(年齢)とScore(スコア)という2つの列を同時に更新しています。

mysql> update DemoTable
   -> set Age=25,
   -> Score=Score+9
   -> where FirstName='Bob';
Query OK, 1 row affected (0.17 sec)
Rows matched: 1  Changed: 1 Warnings: 0

このように、SET句の中で各列の更新内容をカンマで区切って指定するのが基本構文です。また、上記の例のように Score=Score+9 と書けば、既存の値を基準にした計算結果で更新することもできます。さらに、WHERE句を忘れるとテーブル内の全行が更新されてしまうため、必ず条件を指定するように注意してください。

5. 更新後のデータを確認する

もう一度テーブルの内容をチェックしてみましょう。

mysql> select *from DemoTable;

出力結果

+-----------+------+-------+
| FirstName | Age  | Score |
+-----------+------+-------+
| Robert    | 21   | 78    |
| Bob       | 25   | 99    |
| Sam       | 22   | 69    |
+-----------+------+-------+
3 rows in set (0.00 sec)

実行結果を見ると、「Bob」の行だけが更新され、Ageが21から25へ、Scoreが90から99(90+9)へ変更されていることが確認できます。他の行(Robert・Sam)には影響していません。

まとめ

  • UPDATE文のSET句に「列名 = 値」をカンマ区切りで記述すると、1つのSQL文で複数列を更新できる。
  • 既存の値を使った演算(例:Score=Score+9)も可能。
  • 特定の行だけを更新したい場合は、WHERE句で条件を必ず指定する。

これらのポイントを押さえておけば、効率的かつ安全にデータを更新できるようになります。

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

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

  2. 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)