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

MySQL에서 'MONTH_JAN'처럼 특정 단어가 포함된 레코드를 삭제하는 방법

LIKE 연산자로 특정 단어가 포함된 레코드 삭제하기

컬럼 값에 'MONTH_JAN'과 같은 특정 단어가 포함된 레코드를 삭제하려면 LIKE 연산자와 와일드카드(%)를 함께 사용하면 됩니다. 먼저 예제용 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name varchar(40),
   BornMonth varchar(40)
);
Query OK, 0 rows affected (0.47 sec)

테이블에 샘플 데이터 삽입하기

INSERT 명령을 사용하여 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable(Name,BornMonth) values('Chris','MONTH_DEC');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(Name,BornMonth) values('Bob','MONTH_JAN');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(Name,BornMonth) values('Mike','MONTH_FEB');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(Name,BornMonth) values('David','MONTH_JAN');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(Name,BornMonth) values('Carol','MONTH_MARCH');
Query OK, 1 row affected (0.16 sec)

현재 저장된 데이터 확인하기

SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다.

+----+-------+-------------+
| Id | Name  | BornMonth   |
+----+-------+-------------+
|  1 | Chris | MONTH_DEC   |
|  2 | Bob   | MONTH_JAN   |
|  3 | Mike  | MONTH_FEB   |
|  4 | David | MONTH_JAN   |
|  5 | Carol | MONTH_MARCH |
+----+-------+-------------+
5 rows in set (0.00 sec)

DELETE 문으로 조건에 맞는 레코드 삭제하기

다음은 BornMonth 컬럼 값에 'MONTH_JAN'이라는 단어가 포함된 레코드를 삭제하는 쿼리입니다. LIKE 연산자와 함께 '%MONTH_JAN%' 패턴을 사용하여 해당 단어가 포함된 모든 행을 대상으로 합니다.

mysql> delete from DemoTable where BornMonth LIKE '%MONTH_JAN%';
Query OK, 2 rows affected (0.18 sec)

삭제 후 결과 확인하기

테이블의 레코드를 다시 한번 조회하여 삭제가 정상적으로 적용되었는지 확인해 보겠습니다.

mysql> select *from DemoTable;

'MONTH_JAN' 값을 가진 Bob과 David의 레코드가 삭제된 것을 확인할 수 있습니다.

+----+-------+-------------+
| Id | Name  | BornMonth   |
+----+-------+-------------+
|  1 | Chris | MONTH_DEC   |
|  3 | Mike  | MONTH_FEB   |
|  5 | Carol | MONTH_MARCH |
+----+-------+-------------+
3 rows in set (0.00 sec)

이처럼 DELETE 문에서 WHERE 절과 LIKE 연산자를 조합하면 특정 단어가 포함된 레코드를 손쉽게 삭제할 수 있습니다. 참고로 와일드카드 %의 위치에 따라 매칭 범위가 달라지므로, 정확한 조건 설정에 유의하는 것이 좋습니다.