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

MySQLでWHERE句に複数の条件を指定してデータを更新する方法

MySQLでWHERE句に複数の値を指定して更新する方法

MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。

この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。

まずはテーブルを作成する

最初に、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable
-> (
-> Id int,
-> Name varchar(20),
-> Age int,
-> CountryName varchar(10)
-> );
Query OK, 0 rows affected (0.81 sec)

INSERT文でレコードを挿入する

次に、INSERTコマンドを使ってテーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable values(100,'Chris',34,'AUS');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values(101,'Chris',31,'US');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values(102,'David',25,'UK');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(103,'Carol',28,'AUS');
Query OK, 1 row affected (0.21 sec)

SELECT文で全レコードを表示する

SELECT文を使って、テーブル内のすべてのレコードを確認します。

mysql> select * from DemoTable;

実行すると、以下のような結果が出力されます。

+------+-------+------+-------------+
| Id | Name | Age | CountryName |
+------+-------+------+-------------+
| 100 | Chris | 34 | AUS |
| 101 | Chris | 31 | US |
| 102 | David | 25 | UK |
| 103 | Carol | 28 | AUS |
+------+-------+------+-------------+
4 rows in set (0.00 sec)

WHERE句に複数の条件を指定して更新する

それでは、WHERE句に複数の値を指定してレコードを更新するクエリを見ていきましょう。ここでは「Ageが31」かつ「CountryNameがUS」という2つの条件をAND演算子で組み合わせています。

mysql> update DemoTable
-> set Name='Robert'
-> where Age=31 and CountryName='US';
Query OK, 1 row affected (0.44 sec)
Rows matched: 1 Changed: 1 Warnings: 0

このように、AND演算子を使うことで「両方の条件を満たすレコードのみ」を更新対象とできます。なお、いずれか一方の条件を満たすレコードを更新したい場合は、OR演算子を使用してください。

更新結果を確認する

最後に、テーブルのレコードを再度確認して、更新が正しく反映されているかチェックしましょう。

mysql> select * from DemoTable;

実行すると、以下のような結果が出力されます。

+------+--------+------+-------------+
| Id | Name | Age | CountryName |
+------+--------+------+-------------+
| 100 | Chris | 34 | AUS |
| 101 | Robert | 31 | US |
| 102 | David | 25 | UK |
| 103 | Carol | 28 | AUS |
+------+--------+------+-------------+
4 rows in set (0.00 sec)

結果を見ると、Id が 101 のレコード(Age=31 かつ CountryName='US' のレコード)の Name が「Chris」から「Robert」に更新されていることが確認できます。このように、WHERE句に複数の条件を指定することで、意図したレコードだけをピンポイントで更新することができます。

まとめ

MySQLのUPDATE文でWHERE句に複数の条件を指定するには、ANDやORなどの論理演算子を活用します。ANDはすべての条件を満たすレコードを、ORはいずれかの条件を満たすレコードを対象とします。更新前に必ずSELECT文で対象レコードを確認しておくと、誤更新を防げて安心です。

  1. MySQLビュー(VIEW)にWHERE句を使う方法をわかりやすく解説

    MySQLビューでWHERE句を使用する方法MySQLでは、作成済みのビュー(VIEW)に対して、通常のテーブルと同じようにWHERE句を指定してデータを絞り込むことができます。基本となる構文は以下の通りです。select * from yourViewName where yourColumnName=yourValue;それでは、実際にサンプルを使って手順を確認していきましょう。1. サンプルテーブルを作成するまず、学生情報を格納するテーブルを作成します。mysql> create table DemoTable1432 -> ( -> StudentId

  2. MySQLでWHERE句に複数の条件を指定してデータを更新する方法

    MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&