MySQL에서 URL과 같은 문자열 데이터의 특정 부분을 찾아 다른 값으로 교체해야 하는 경우가 자주 있습니다. 예를 들어 http=//처럼 잘못 저장된 URL을 https://로 일괄 수정하는 상황이 그렇습니다.
이럴 때 가장 간단하고 효과적인 방법은 MySQL의 REPLACE() 함수를 사용하는 것입니다. REPLACE() 함수는 지정한 문자열에서 찾고자 하는 부분을 새로운 문자열로 대체해 줍니다.
1. 테이블 생성하기
먼저 URL을 저장할 테이블을 생성합니다.
mysql> create table DemoTable2025
-> (
-> URL text
-> );
Query OK, 0 rows affected (0.88 sec)
2. 샘플 데이터 삽입하기
INSERT 명령을 사용하여 테스트용 URL 레코드를 몇 개 추가합니다.
mysql> insert into DemoTable2025 values('http=//www.facebook.com');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable2025 values('http=//www.google.com');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable2025 values('http=//www.gmail.com');
Query OK, 1 row affected (0.26 sec)3. 현재 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable2025;
실행 결과는 다음과 같습니다.
+-------------------------+
| URL |
+-------------------------+
| http=//www.facebook.com |
| http=//www.google.com |
| http=//www.gmail.com |
+-------------------------+
3 rows in set (0.00 sec)
4. REPLACE() 함수로 URL 일괄 수정하기
이제 UPDATE 문과 REPLACE() 함수를 함께 사용하여 http= 부분을 https:로 찾아 바꿉니다.
mysql> update DemoTable2025
-> set URL=replace(URL,'http=','https:');
Query OK, 3 rows affected (0.21 sec)
Rows matched: 3 Changed: 3 Warnings: 0
총 3개의 행이 성공적으로 변경되었습니다.
5. 변경 결과 확인하기
다시 SELECT 문을 실행하여 결과를 확인합니다.
mysql> select *from DemoTable2025;
+--------------------------+
| URL |
+--------------------------+
| https://www.facebook.com |
| https://www.google.com |
| https://www.gmail.com |
+--------------------------+
3 rows in set (0.00 sec)
모든 URL이 http=//에서 https://로 정상적으로 변경된 것을 확인할 수 있습니다.
REPLACE() 함수 사용 시 참고 사항
REPLACE() 함수는 대소문자를 구분하며, WHERE 절 없이 UPDATE 문에 사용하면 테이블의 모든 행에 적용됩니다. 따라서 실무에서는 특정 조건의 레코드만 수정하려면 WHERE 절을 함께 사용하는 것이 안전합니다. 또한 대량의 데이터를 수정하기 전에는 반드시 백업을 수행하는 것이 좋습니다.