MySQL에서 열(컬럼)에 저장된 특정 문자를 다른 문자로 바꾸려면 REPLACE() 함수를 사용하고, 실제 데이터를 변경하려면 UPDATE 문과 함께 실행하면 됩니다.
1. 기본 문법
UPDATE 테이블명 SET 컬럼명 = REPLACE(컬럼명, '찾을 문자', '바꿀 문자');
이제 실제 예제를 통해 단계별로 살펴보겠습니다.
2. 샘플 테이블 생성
먼저 테스트용 테이블을 생성합니다.
mysql> create table DemoTable1899
(
Code varchar(20)
);
Query OK, 0 rows affected (0.00 sec)3. 데이터 삽입
INSERT 명령으로 언더스코어(_)가 포함된 레코드 몇 개를 추가합니다.
mysql> insert into DemoTable1899 values('John_123');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1899 values('32189_Sam_987');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1899 values('Miller_David_456_909');
Query OK, 1 row affected (0.00 sec)4. 현재 데이터 확인
SELECT 문으로 전체 레코드를 조회해 보겠습니다.
mysql> select * from DemoTable1899;
실행 결과는 다음과 같습니다.
+----------------------+ | Code | +----------------------+ | John_123 | | 32189_Sam_987 | | Miller_David_456_909 | +----------------------+ 3 rows in set (0.00 sec)
5. 특정 문자 교체하기
아래 쿼리는 Code 열의 모든 언더스코어(_)를 빈 문자열('')로 교체하여 제거합니다.
mysql> update DemoTable1899 set Code=replace(Code,'_',''); Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0
6. 변경 결과 확인
테이블을 다시 조회하면 언더스코어가 모두 사라진 것을 확인할 수 있습니다.
mysql> select * from DemoTable1899;
+-------------------+ | Code | +-------------------+ | John123 | | 32189Sam987 | | MillerDavid456909 | +-------------------+ 3 rows in set (0.00 sec)
마무리 정리
이처럼 REPLACE() 함수는 세 개의 인자를 받습니다. 첫 번째는 대상 문자열 또는 컬럼, 두 번째는 찾을 문자, 세 번째는 교체할 문자입니다. 세 번째 인자에 빈 문자열을 넣으면 해당 문자를 삭제하는 효과도 얻을 수 있습니다. UPDATE 문과 결합하면 테이블의 여러 행에 걸친 일괄 문자 치환이 한 번의 쿼리로 가능하므로, 데이터 정제 작업 시 매우 유용하게 활용됩니다.