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

MySQL에서 특정 문자열이 포함된 테이블 행 삭제하기 – DELETE와 LIKE 활용법

MySQL에서 특정 문자열이 일치하는 행 삭제하기

MySQL에서는 DELETE 문과 LIKE 연산자를 조합하면 특정 문자열이 포함된 셀을 가진 테이블 행을 간편하게 삭제할 수 있습니다. 이 글에서는 테이블 생성부터 데이터 삭제, 결과 확인까지 전 과정을 예제와 함께 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 데모용 테이블을 생성합니다.

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

2단계: 샘플 데이터 삽입

INSERT 명령어를 사용하여 테이블에 레코드를 추가합니다.

mysql> insert into DemoTable(Name) values('John Smith');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(Name) values('Carol Taylor');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(Name) values('John Doe');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable(Name) values('Chris Brown');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(Name) values('John Brown');
Query OK, 1 row affected (0.19 sec)

3단계: 전체 데이터 조회

SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+----+--------------+
| Id | Name         |
+----+--------------+
|  1 | John Smith   |
|  2 | Carol Taylor |
|  3 | John Doe     |
|  4 | Chris Brown  |
|  5 | John Brown   |
+----+--------------+
5 rows in set (0.00 sec)

4단계: 문자열이 일치하는 행 삭제

다음은 Name 컬럼의 값에 특정 문자열이 포함된 행을 삭제하는 쿼리입니다. 여기서는 LIKE 패턴 '%ohn%'을 사용하여 'ohn'이라는 문자열이 들어간 모든 행을 대상으로 합니다.

mysql> delete from DemoTable where Name like '%ohn%';
Query OK, 3 rows affected (0.16 sec)

5단계: 삭제 결과 확인

테이블을 다시 조회하여 삭제가 정상적으로 적용되었는지 확인합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+----+--------------+
| Id | Name         |
+----+--------------+
|  2 | Carol Taylor |
|  4 | Chris Brown  |
+----+--------------+
2 rows in set (0.00 sec)

'John Smith', 'John Doe', 'John Brown'처럼 'ohn'이 포함된 3개의 행이 삭제되고, 해당 문자열이 없는 'Carol Taylor'와 'Chris Brown' 두 행만 남은 것을 확인할 수 있습니다.

LIKE 연산자 사용 시 참고 사항

LIVE 연산자에서 %는 0개 이상의 임의의 문자열을 의미하는 와일드카드입니다. 따라서 '%ohn%'는 'ohn' 앞뒤로 어떤 문자가 오더라도 매칭됩니다. 만약 값이 정확히 일치하는 행만 삭제하고 싶다면 LIKE 대신 등호(=) 연산자를 사용하면 됩니다. 또한 실무 환경에서는 DELETE 실행 전 SELECT 문으로 먼저 삭제 대상을 확인하는 습관이 데이터 손실을 방지하는 좋은 방법입니다.