MySQL에서는 REPLACE() 함수를 사용하여 문자열에 포함된 공백을 대시(-) 같은 다른 문자로 손쉽게 변경할 수 있습니다. 이 글에서는 실제 예제를 통해 컬럼 값의 공백 사이에 대시를 추가하는 과정을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable1625
-> (
-> FullName varchar(20)
-> );
Query OK, 0 rows affected (0.68 sec)
2. 샘플 데이터 삽입하기
INSERT 명령어를 사용해 테이블에 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable1625 values('John Doe');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1625 values('Adam Smith');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1625 values('John Smith');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1625 values('Carol Taylor');
Query OK, 1 row affected (0.14 sec)3. 현재 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select * from DemoTable1625;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+--------------+
| FullName |
+--------------+
| John Doe |
| Adam Smith |
| John Smith |
| Carol Taylor |
+--------------+
4 rows in set (0.00 sec)
4. REPLACE() 함수로 공백을 대시로 변경하기
다음은 UPDATE 문과 REPLACE() 함수를 함께 사용하여 컬럼 값 내부의 공백을 대시(-)로 변환하는 쿼리입니다.
mysql> update DemoTable1625 set FullName=replace(FullName,' ','-');
Query OK, 4 rows affected (0.15 sec)
Rows matched: 4 Changed: 4 Warnings: 0
REPLACE(컬럼명, '찾을 문자열', '바꿀 문자열') 형식으로 작성하며, 위 예제에서는 공백(' ')을 찾아 대시('-')로 교체했습니다.
5. 변경 결과 확인하기
테이블의 레코드를 다시 한번 조회해 보겠습니다.
mysql> select * from DemoTable1625;
실행 결과, 모든 이름의 공백이 대시로 성공적으로 변경된 것을 확인할 수 있습니다.
+--------------+
| FullName |
+--------------+
| John-Doe |
| Adam-Smith |
| John-Smith |
| Carol-Taylor |
+--------------+
4 rows in set (0.00 sec)
이처럼 MySQL의 REPLACE() 함수를 활용하면 별도의 복잡한 처리 없이도 UPDATE 문 하나로 문자열 내 특정 문자를 간편하게 치환할 수 있습니다. URL 슬러그 생성이나 데이터 정제 작업 등 다양한 상황에서 유용하게 사용할 수 있습니다.