MySQL에서 컬럼 값에 포함된 공백(빈 칸)을 특정 문자로 바꾸려면 REPLACE() 함수를 사용하면 됩니다. REPLACE() 함수는 첫 번째 인자로 대상 문자열, 두 번째 인자로 찾을 문자열, 세 번째 인자로 교체할 문자열을 받아 모든 일치 항목을 한 번에 변경해 줍니다.
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable (Subject text);
Query OK, 0 rows affected (0.86 sec)
예제
INSERT 명령을 사용하여 테이블에 몇 개의 레코드를 삽입합니다.
mysql> insert into DemoTable values('Introduction to MySQL');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Java in depth');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('Data Structure and Algorithm');
Query OK, 1 row affected (0.16 sec)SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
출력 결과
+------------------------------+
| Subject |
+------------------------------+
| Introduction to MySQL |
| Java in depth |
| Data Structure and Algorithm |
+------------------------------+
3 rows in set (0.00 sec)
이제 공백을 밑줄(_) 문자로 교체하는 쿼리를 실행해 보겠습니다.
mysql> SELECT *,REPLACE(Subject,' ','_') as Subject_Name from DemoTable;
출력 결과
+-------------------------------+------------------------------+
| Subject | Subject_Name |
+-------------------------------+------------------------------+
| Introduction to MySQL | Introduction_to_MySQL |
| Java in depth | Java_in_depth |
| Data Structure and Algorithm | Data_Structure_and_Algorithm |
+-------------------------------+------------------------------+
3 rows in set (0.00 sec)
위 출력 결과에서 볼 수 있듯이, REPLACE(Subject,' ','_') 구문은 Subject 컬럼 값의 모든 공백을 밑줄(_)로 변환하여 새로운 별칭 컬럼 Subject_Name으로 반환합니다. 원본 데이터는 그대로 유지되며, 실제 저장된 값을 변경하고 싶다면 UPDATE 문과 함께 REPLACE() 함수를 조합하여 사용할 수 있습니다.