MySQL 데이터베이스에서 특정 도메인이 포함된 URL을 한 번에 삭제하고 싶다면 DELETE 문과 LIKE 절을 함께 사용하면 됩니다. LIKE 절에 와일드카드(%)를 활용하면 특정 도메인 문자열이 포함된 모든 레코드를 손쉽게 찾아 제거할 수 있습니다.
1. 예제 테이블 생성하기
먼저 URL을 저장할 테이블을 생성합니다.
mysql> create table DemoTable1361
-> (
-> URL text
-> );
Query OK, 0 rows affected (0.58 sec)
2. 샘플 데이터 삽입하기
INSERT 명령어를 사용해 여러 도메인의 URL 레코드를 입력합니다.
mysql> insert into DemoTable1361 values('Https://www.google.com//?id=1');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable1361 values('Https://www.facebook.com//?id=2&name=John');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1361 values('Https://www.yahoo.com//?id=3');
Query OK, 1 row affected (0.31 sec)
mysql> insert into DemoTable1361 values('Https://www.google.com//?id=1');
Query OK, 1 row affected (0.16 sec)3. 전체 레코드 확인하기
SELECT 문으로 테이블에 저장된 모든 레코드를 조회합니다.
mysql> select * from DemoTable1361;
실행 결과는 다음과 같습니다.
+-------------------------------------------+
| URL |
+-------------------------------------------+
| Https://www.google.com//?id=1 |
| Https://www.facebook.com//?id=2&name=John |
| Https://www.yahoo.com//?id=3 |
| Https://www.google.com//?id=1 |
+-------------------------------------------+
4 rows in set (0.00 sec)
현재 google.com 도메인의 URL이 두 개 포함되어 있는 것을 확인할 수 있습니다.
4. DELETE와 LIKE로 특정 도메인 URL 삭제하기
이제 LIKE 절과 와일드카드(%)를 사용해 'google.com' 도메인이 포함된 URL을 모두 삭제하는 쿼리를 실행합니다.
mysql> delete from DemoTable1361 where URL LIKE '%Https://www.google.com%';
Query OK, 2 rows affected (0.17 sec)
와일드카드 %는 앞뒤에 어떤 문자열이 오더라도 매칭되도록 해주므로, 해당 도메인을 포함한 모든 URL이 삭제 대상이 됩니다.
5. 삭제 결과 확인하기
다시 SELECT 문으로 테이블을 조회하여 삭제가 정상적으로 적용되었는지 확인합니다.
mysql> select * from DemoTable1361;
실행 결과는 다음과 같습니다.
+-------------------------------------------+
| URL |
+-------------------------------------------+
| Https://www.facebook.com//?id=2&name=John |
| Https://www.yahoo.com//?id=3 |
+-------------------------------------------+
2 rows in set (0.00 sec)
'google.com' 도메인의 URL 두 개가 모두 삭제되고, 나머지 레코드만 남아 있는 것을 확인할 수 있습니다.
정리
특정 도메인의 URL을 삭제할 때는 다음과 같은 형식의 쿼리를 사용합니다.
DELETE FROM 테이블명 WHERE 컬럼명 LIKE '%도메인%';
단, DELETE 작업은 되돌릴 수 없으므로 실제 운영 환경에서는 실행 전 반드시 SELECT 문으로 삭제 대상 레코드를 먼저 확인하고, 필요하다면 백업을 진행한 후 삭제하는 것이 안전합니다.