【MySQL】WHERE句のAND条件を使ってテーブルから特定のレコードを削除する方法
MySQLでWHERE句にAND条件を使って特定のレコードを削除する方法
MySQLでは、WHERE句にAND演算子を組み合わせることで、複数の条件をすべて満たすレコードだけを対象に操作できます。本記事では、実際にテーブルを作成し、AND条件を使って特定のレコードを削除するまでの手順を順番に解説します。
1. テーブルの作成
まず、サンプル用のテーブルを作成します。
mysql> create table DemoTable
-> (
-> Id int,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.70 sec)
2. レコードの挿入
INSERT文を使って、いくつかのレコードを追加します。
mysql> insert into DemoTable values(101,'Chris');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(102,'David');
Query OK, 1 row affected (0.51 sec)
mysql> insert into DemoTable values(103,'Bob');
Query OK, 1 row affected (0.14 sec)
3. レコードの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable;
実行結果は以下の通りです。
+------+-------+
| Id | Name |
+------+-------+
| 101 | Chris |
| 102 | David |
| 103 | Bob |
+------+-------+
3 rows in set (0.00 sec)
4. AND条件を使ったレコードの削除
ここで、「Id=102」かつ「Name='David'」という両方の条件を満たすレコードのみを削除します。DELETE文のWHERE句にANDを指定するだけで、複数条件による絞り込みが可能です。
mysql> delete from DemoTable where Id=102 and Name='David';
Query OK, 1 row affected (0.20 sec)
5. 削除後の確認
もう一度テーブルの内容を確認してみましょう。
mysql> select * from DemoTable;
実行結果は次のようになります。
+------+-------+
| Id | Name |
+------+-------+
| 101 | Chris |
| 103 | Bob |
+------+-------+
2 rows in set (0.00 sec)
このように、両方の条件に一致した「Id=102、Name='David'」のレコードだけが削除され、それ以外のレコードはそのまま残ります。AND条件を活用すれば、単一の条件では指定できないより厳密な削除対象の絞り込みが可能になります。なお、誤って別のレコードを削除しないためにも、DELETE文を実行する前に同じ条件でSELECT文を実行し、対象レコードを事前に確認しておくことをおすすめします。
-
MySQLでAND・OR演算子を組み合わせた単一クエリを使って特定のレコードを取得する方法
MySQLでは、AND演算子とOR演算子をWHERE句で組み合わせることで、複数の条件を指定しながら特定のレコードを1つのクエリで取得できます。本記事では、実際にテーブルを作成し、データを挿入して、AND・ORを組み合わせたクエリの動作を確認していきます。 1. テーブルの作成 まず、CREATE TABLE文でサンプル用のテーブルを作成します。 mysql> create table DemoTable2015 -> ( -> StudentId int, -> StudentName varchar(20), -> Stude
-
PythonとMySQLでテーブルからレコードを削除する方法を徹底解説
データベースを運用していると、テーブルから特定の行(レコード)を削除する必要が生じることがあります。例えば、クラスの生徒情報を管理するテーブルがあるとしましょう。ある生徒がクラスを退会した場合、その生徒の情報はもう不要になるため、該当する行をテーブルから削除する必要があります。 MySQLでは「DELETE FROM」ステートメントを使用して、テーブルから行やレコードを削除します。「WHERE」句を使うことで、削除対象の行を指定できます。なお、WHERE句を指定しない場合は、テーブル内のすべてのレコードが削除されてしまうため注意が必要です。 構文 すべての行を削除する場合 − DELETE F