Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 WHERE 절의 AND 조건으로 특정 레코드 삭제하기

MySQL에서 AND 연산자는 WHERE 절과 함께 사용되어 여러 조건을 모두 만족하는 레코드만 필터링할 때 활용됩니다. 이번 글에서는 DELETE 문에 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이고 이름이 'David'인 레코드를 삭제하는 쿼리입니다. 두 조건이 모두 일치하는 행만 삭제된다는 점에 유의하세요.

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 연산자를 활용하면 여러 조건을 결합하여 삭제 대상을 더욱 정밀하게 지정할 수 있으며, 실수로 의도하지 않은 데이터를 삭제하는 위험도 줄일 수 있습니다.