Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 URL 레코드의 일부를 찾아 바꾸는 방법

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 절을 함께 사용하는 것이 안전합니다. 또한 대량의 데이터를 수정하기 전에는 반드시 백업을 수행하는 것이 좋습니다.