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

MySQLで2つのカラム(列)を同時に更新する方法|UPDATE文の基本構文と実例

MySQLでは、UPDATE文のSET句に「カラム名 = 値」をカンマ(,)で区切って記述することで、1回のクエリで複数のカラムを同時に更新できます。本記事では、基本構文から実際の動作確認まで、具体例を交えてわかりやすく解説します。

基本構文

2つのカラムを更新する場合の基本的な構文は以下の通りです。

UPDATE テーブル名
SET カラム名1 = '値1',
カラム名2 = '値2'
WHERE 条件;

ポイントは、SET句の中で更新したいカラムごとの代入式をカンマで区切ることです。WHERE句で対象レコードを絞り込むことも忘れないようにしましょう。

サンプルテーブルを作成する

それでは、実際に動きを確認するためのテーブルを作成します。以下のクエリで学生情報を管理するテーブルを定義します。

mysql> create table StudentInformations
-> (
-> StudentId int not null auto_increment,
-> StudentFirstName varchar(20),
-> StudentLastName varchar(20),
-> Primary Key(StudentId)
-> );
Query OK, 0 rows affected (0.57 sec)

テストデータを挿入する

次に、INSERT文を使ってサンプルレコードを登録します。

mysql> insert into StudentInformations(StudentFirstName,StudentLastName) values('John','Smith');
Query OK, 1 row affected (0.16 sec)

mysql> insert into StudentInformations(StudentFirstName,StudentLastName) values('Carol','Taylor');
Query OK, 1 row affected (0.17 sec)

mysql> insert into StudentInformations(StudentFirstName,StudentLastName) values('Mike','Jones');
Query OK, 1 row affected (0.13 sec)

mysql> insert into StudentInformations(StudentFirstName,StudentLastName) values('Sam','Williams');
Query OK, 1 row affected (0.16 sec)

mysql> insert into StudentInformations(StudentFirstName,StudentLastName) values('Bob','Davis');
Query OK, 1 row affected (0.14 sec)

mysql> insert into StudentInformations(StudentFirstName,StudentLastName) values('David','Miller');
Query OK, 1 row affected (0.20 sec)

登録済みデータを確認する

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

mysql> select * from StudentInformations;

実行結果は以下の通りです。

+-----------+------------------+-----------------+
| StudentId | StudentFirstName | StudentLastName |
+-----------+------------------+-----------------+
| 1 | John | Smith |
| 2 | Carol | Taylor |
| 3 | Mike | Jones |
| 4 | Sam | Williams |
| 5 | Bob | Davis |
| 6 | David | Miller |
+-----------+------------------+-----------------+
6 rows in set (0.00 sec)

実際に2つのカラムを更新してみる

ここでは、StudentIdが3の学生の氏名(StudentFirstNameとStudentLastName)を同時に更新します。以下のようにUPDATE文を実行してください。

mysql> update StudentInformations set StudentFirstName = 'Robert',
StudentLastName = 'Brown' where
-> StudentId = 3;
Query OK, 1 row affected (0.12 sec)
Rows matched − 1 Changed − 1 Warnings − 0

更新結果を確認する

もう一度SELECT文を実行し、値が正しく反映されたかを確認します。

mysql> select * from StudentInformations;

実行結果は以下の通りです。

+-----------+------------------+-----------------+
| StudentId | StudentFirstName | StudentLastName |
+-----------+------------------+-----------------+
| 1 | John | Smith |
| 2 | Carol | Taylor |
| 3 | Robert | Brown |
| 4 | Sam | Williams |
| 5 | Bob | Davis |
| 6 | David | Miller |
+-----------+------------------+-----------------+
6 rows in set (0.00 sec)

上記の結果を見ると、StudentIdが3のレコードについて、StudentFirstNameが「Robert」、StudentLastNameが「Brown」に正しく更新されていることがわかります。このようにSET句でカンマ区切りを使えば、1つのUPDATE文で複数のカラムを効率よく処理できます。

注意点:WHERE句の付け忘れに気をつける

UPDATE文でWHERE句を省略すると、テーブル内のすべてのレコードが一括更新されてしまうため注意が必要です。特に本番環境で作業する場合は、事前にSELECT文で対象レコードを確認してから実行することをおすすめします。

  1. MySQLでデータベースを削除する方法|DROP DATABASEコマンドの使い方を解説

    MySQLでデータベースを削除するには、DROP DATABASEコマンドを使用します。本記事では、実際のコマンド例とともに、データベースの削除手順と削除後の確認方法をわかりやすく解説します。 DROP DATABASEの基本構文 任意のデータベースを削除する場合、MySQLではDROPコマンドを使います。基本構文は以下のとおりです。 DROP DATABASE yourDatabaseName; 手順1:既存のデータベース一覧を確認する まず、MySQLサーバー内にどれだけのデータベースが存在しているかを確認してみましょう。データベースの一覧を表示するには、次のクエリを実行します。

  2. JavaでMySQLデータベースのレコードを更新する方法【UPDATE文の使い方を実例で解説】

    MySQLデータベースのテーブルに格納されたデータを更新するには、UPDATEコマンドを使用します。本記事では、UPDATE文の基本構文から、実際にテーブルを作成し、Java(JDBC)経由でレコードを更新するまでの一連の手順を、サンプルコード付きで詳しく解説します。 UPDATE文の基本構文 MySQLで既存のデータを更新する場合、以下の構文を使用します。 update テーブル名 set カラム名1 = 値1, ....N where 条件; where句で条件を指定しないと、テーブル内のすべてのレコードが更新されてしまうため注意が必要です。 ステップ1:テーブルの作成 まずは更新用のサン