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文で対象レコードを確認しておくと、誤更新を防げて安心です。
-
MySQLビュー(VIEW)にWHERE句を使う方法をわかりやすく解説
MySQLビューでWHERE句を使用する方法MySQLでは、作成済みのビュー(VIEW)に対して、通常のテーブルと同じようにWHERE句を指定してデータを絞り込むことができます。基本となる構文は以下の通りです。select * from yourViewName where yourColumnName=yourValue;それでは、実際にサンプルを使って手順を確認していきましょう。1. サンプルテーブルを作成するまず、学生情報を格納するテーブルを作成します。mysql> create table DemoTable1432 -> ( -> StudentId
-
MySQLでWHERE句に複数の条件を指定してデータを更新する方法
MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&