MySQL REPLACE() 함수로 더하기 기호(+)를 공백으로 치환하기
문자열에 포함된 더하기 기호(+)를 공백으로 바꾸고 싶다면 MySQL에서 제공하는 REPLACE() 함수를 사용하면 됩니다. REPLACE() 함수는 지정한 문자열에서 특정 문자나 부분 문자열을 찾아 원하는 값으로 손쉽게 치환해 주는 유용한 문자열 함수입니다.
먼저 실습에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
Number varchar(100)
);
Query OK, 0 rows affected (0.86 sec)
테이블이 준비되었으면 INSERT 명령을 사용하여 몇 개의 레코드를 삽입합니다. 여기서는 더하기 기호가 포함된 전화번호 형태의 데이터를 사용해 보겠습니다.
mysql> insert into DemoTable values('+916578675547');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('+918976676564');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('+919800087678');
Query OK, 1 row affected (0.12 sec)SELECT 문을 실행하여 테이블에 저장된 모든 레코드를 확인해 보겠습니다.
mysql> select *from DemoTable;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+---------------+
| Number |
+---------------+
| +916578675547 |
| +918976676564 |
| +919800087678 |
+---------------+
3 rows in set (0.00 sec)
더하기 기호(+)를 공백으로 바꾸는 UPDATE 쿼리
이제 REPLACE() 함수를 활용하여 Number 컬럼의 더하기 기호(+)를 공백으로 바꾸는 UPDATE 쿼리를 살펴보겠습니다.
mysql> update DemoTable set Number=replace(Number, '+', ' ');
Query OK, 3 rows affected (0.12 sec)
Rows matched: 3 Changed: 3 Warnings: 0
REPLACE(Number, '+', ' ') 구문은 Number 컬럼의 값에서 '+' 문자를 찾아 공백(' ')으로 대체합니다. 쿼리 실행 결과 3개 행이 정상적으로 변경되었습니다.
변경이 제대로 적용되었는지 테이블의 레코드를 다시 한번 조회해 보겠습니다.
mysql> select *from DemoTable
실행 결과는 다음과 같습니다.
+---------------+
| Number |
+---------------+
| 916578675547 |
| 918976676564 |
| 919800087678 |
+---------------+
3 rows in set (0.00 sec)
출력 결과를 보면 모든 데이터에서 더하기 기호(+)가 사라진 것을 확인할 수 있습니다. 이처럼 REPLACE() 함수를 UPDATE 문과 함께 사용하면 테이블 전체 또는 조건에 맞는 특정 행의 문자열을 간편하게 일괄 치환할 수 있습니다.