MySQL 테이블에 저장된 백슬래시(\\) 값은 이스케이프 처리 때문에 일반적인 방식으로는 삭제하기 까다롭습니다. 하지만 DELETE 명령어에 적절한 이스케이프 문자를 조합하면 간단하게 해결할 수 있습니다.
DELETE 명령어로 백슬래시 항목 삭제하기
기본적인 문법은 다음과 같습니다. 작은따옴표 안에서 백슬래시를 네 개(\\\\) 사용해야 실제 두 개의 백슬래시와 매칭됩니다.
delete from yourTableName where yourColumnName='\\\\';
실습 예제
먼저 테스트용 테이블을 생성합니다.
mysql> create table DemoTable
(
FolderName varchar(100)
);
Query OK, 0 rows affected (0.67 sec)INSERT 명령어로 샘플 데이터를 입력합니다. 두 번째 레코드에는 백슬래시 값을 넣습니다.
mysql> insert into DemoTable values("????");
Query OK, 1 row affected (0.44 sec)
mysql> insert into DemoTable values("\\\\");
Query OK, 1 row affected (0.13 sec)SELECT문으로 전체 레코드를 확인합니다.
mysql> select *from DemoTable;
출력 결과
+------------+ | FolderName | +------------+ | ???? | | \\ | +------------+ 2 rows in set (0.00 sec)
백슬래시 항목 삭제 쿼리 실행
이제 WHERE 절에 네 개의 백슬래시를 지정하여 해당 레코드를 삭제합니다.
mysql> delete from DemoTable where FolderName='\\\\'; Query OK, 1 row affected (0.63 sec)
삭제 후 테이블을 다시 조회하여 결과를 확인합니다.
mysql> select *from DemoTable;
출력 결과
+------------+ | FolderName | +------------+ | ???? | +------------+ 1 row in set (0.00 sec)
핵심 포인트 정리
MySQL에서 백슬래시는 특수 문자(이스케이프 문자)로 취급되기 때문에, 문자열 리터럴 내에서 하나의 백슬래시를 표현하려면 두 개를 연속으로 작성해야 합니다. 따라서 실제 저장된 두 개의 백슬래시(\\)를 조건으로 매칭하려면 총 네 개의 백슬래시(\\\\)를 사용해야 합니다. 이 원리만 이해하면 LIKE 연산자나 REPLACE 함수 등 다른 상황에서도 동일하게 응용할 수 있습니다.