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

MySQL에서 REPLACE 함수로 이메일 주소를 다른 도메인으로 변경(마스킹)하는 방법

MySQL에서 저장된 사용자 이메일 주소의 도메인 부분을 다른 도메인으로 일괄 변경해야 하는 경우가 있습니다. 예를 들어 개인정보 보호를 위해 데이터를 마스킹하거나, 테스트 환경으로 데이터를 복사할 때 실제 도메인을 숨기고 싶을 수 있습니다. 이럴 때 REPLACE() 함수를 사용하면 간단하게 처리할 수 있습니다.

1. 테이블 생성하기

먼저 이메일 주소를 저장할 테이블을 생성합니다.

mysql> create table DemoTable1345
-> (
-> UserEmailAddress text
-> );
Query OK, 0 rows affected (0.42 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용하여 이메일 주소 데이터를 입력합니다.

mysql> insert into DemoTable1345 values('Carol123@gmail.com');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1345 values('987Sam@gmail.com');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1345 values('David_Miller@gmail.com');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1345 values('Bob@gmail.com');
Query OK, 1 row affected (0.14 sec)

3. 현재 데이터 확인하기

SELECT 문으로 테이블에 저장된 모든 레코드를 조회합니다.

mysql> select * from DemoTable1345;

실행 결과는 다음과 같습니다.

+------------------------+
| UserEmailAddress |
+------------------------+
| Carol123@gmail.com |
| 987Sam@gmail.com |
| David_Miller@gmail.com |
| Bob@gmail.com |
+------------------------+
4 rows in set (0.00 sec)

4. REPLACE 함수로 도메인 변경하기

다음 쿼리는 @gmail.com 부분을 @amz.com으로 교체하여 이메일 주소를 마스킹합니다.

mysql> update DemoTable1345 set UserEmailAddress=replace(UserEmailAddress, '@gmail.com','@amz.com');
Query OK, 4 rows affected (0.18 sec)
Rows matched: 4 Changed: 4 Warnings: 0

5. 변경 결과 확인하기

업데이트 후 테이블을 다시 조회하여 결과를 확인합니다.

mysql> select * from DemoTable1345;

모든 이메일 주소의 도메인이 성공적으로 변경된 것을 확인할 수 있습니다.

+----------------------+
| UserEmailAddress |
+----------------------+
| Carol123@amz.com |
| 987Sam@amz.com |
| David_Miller@amz.com |
| Bob@amz.com |
+----------------------+
4 rows in set (0.00 sec)

REPLACE 함수 동작 원리

REPLACE(컬럼명, '찾을 문자열', '바꿀 문자열') 형태로 사용하며, 지정한 문자열이 포함된 모든 부분을 찾아 새 문자열로 치환합니다. 위 예제에서는 '@gmail.com'이라는 정확한 문자열만 매칭되므로, 로컬 파트(사용자 이름)는 그대로 유지되고 도메인 부분만 안전하게 변경됩니다.

참고: UPDATE 문은 기존 데이터를 직접 수정하므로, 운영 환경에서 실행하기 전 반드시 데이터 백업을 수행하고 WHERE 절 조건 추가 등을 통해 영향 범위를 신중하게 검토하는 것이 좋습니다.