MySQL에서 문자열 일부를 교체하는 방법
MySQL 테이블의 특정 열에 저장된 문자열 중 일부를 다른 값으로 바꾸고 싶다면 REPLACE() 함수를 사용하면 됩니다. UPDATE 문과 함께 사용하면 기존 데이터를 손쉽게 수정할 수 있습니다.
기본 문법
update yourTableName set yourColumnName = REPLACE(yourColumnName ,'yourOldValue','yourNewValue');
위 문법에서 각 인자는 다음과 같은 의미를 가집니다.
- yourTableName : 수정할 테이블 이름
- yourColumnName : 값을 변경할 열(컬럼) 이름
- yourOldValue : 교체 대상이 되는 기존 문자열
- yourNewValue : 새로 대체될 문자열
예제 테이블 생성하기
먼저 실습용 테이블을 만들어 보겠습니다.
mysql> create table replacePartOfStringDemo
-> (
-> WebsiteURL varchar(100)
-> );
Query OK, 0 rows affected (0.47 sec)데이터 삽입하기
INSERT 명령을 사용해 테이블에 레코드를 추가합니다.
mysql> insert into replacePartOfStringDemo(WebsiteURL) values('www.mysqlQuestion.com');
Query OK, 1 row affected (0.14 sec)저장된 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select * from replacePartOfStringDemo;
실행 결과는 다음과 같습니다.
+-----------------------+ | WebsiteURL | +-----------------------+ | www.mysqlQuestion.com | +-----------------------+ 1 row in set (0.00 sec)
REPLACE() 함수로 문자열 교체하기
이제 REPLACE() 함수를 사용해 열의 문자열 일부를 교체해 보겠습니다. 여기서는 URL의 "mysqlQuestion" 부분을 "mysql"로 변경합니다.
mysql> update replacePartOfStringDemo set WebsiteURL=REPLACE(WebsiteURL,'www.mysqlQuestion.com','www.mysql.com'); Query OK, 1 row affected (0.20 sec) Rows matched: 1 Changed: 1 Warnings: 0
쿼리 실행 결과 1개 행이 성공적으로 변경되었습니다.
변경 결과 확인하기
다시 SELECT 문으로 테이블을 조회하여 값이 제대로 바뀌었는지 확인합니다.
mysql> select * from replacePartOfStringDemo;
실행 결과는 다음과 같습니다.
+---------------+ | WebsiteURL | +---------------+ | www.mysql.com | +---------------+ 1 row in set (0.00 sec)
출력 결과를 보면 www.mysqlQuestion.com이 www.mysql.com으로 성공적으로 교체된 것을 확인할 수 있습니다.
정리
MySQL에서 테이블 열의 문자열 일부를 교체하는 작업은 REPLACE() 함수 하나면 충분합니다. UPDATE 문과 결합하여 사용하며, 세 번째 인자에 새로운 값을 지정하는 것이 핵심입니다. 참고로 REPLACE() 함수는 대소문자를 구분하므로, 정확한 문자열을 지정해야 원하는 결과를 얻을 수 있습니다.