MySQL에서 텍스트 데이터에 포함된 \r\n(캐리지 리턴과 줄바꿈 문자)을 제거하려면 REPLACE() 함수를 사용하면 됩니다. REPLACE 함수는 문자열 내에서 특정 문자열을 찾아 다른 문자열로 대체하는 기능을 제공합니다.
기본 문법
UPDATE yourTableName SET yourColumnName = REPLACE(yourColumnName, '\r\n', '');
위 문법에서 세 번째 인자에 공백(' ')을 넣으면 줄바꿈 문자가 공백으로 대체되고, 빈 문자열('')을 넣으면 완전히 제거됩니다.
예제로 확인하기
실제 동작을 이해하기 위해 예제 테이블을 먼저 생성해 보겠습니다.
1. 테이블 생성
mysql> create table removeDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name text, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.79 sec)
2. 데이터 삽입
INSERT 명령어를 사용해 \r\n이 포함된 샘플 데이터를 입력합니다.
mysql> insert into removeDemo(Name) values('John\r\nSmithCarol');
Query OK, 1 row affected (0.13 sec)
mysql> insert into removeDemo(Name) values('LarryMike\r\nSam');
Query OK, 1 row affected (0.34 sec)
mysql> insert into removeDemo(Name) values('David\r\nBobJames');
Query OK, 1 row affected (0.10 sec)3. 데이터 조회
SELECT 문으로 전체 레코드를 조회해 보겠습니다.
mysql> select *from removeDemo;
\r\n이 포함된 상태이므로 출력 결과가 올바르게 정렬되지 않은 것을 확인할 수 있습니다.
+----+------------------+ | Id | Name | +----+------------------+ | 1 | John SmithCarol | | 2 | LarryMike Sam | | 3 | David BobJames | +----+------------------+ 3 rows in set (0.00 sec)
REPLACE로 \r\n 제거하기
이제 UPDATE 문과 REPLACE 함수를 조합하여 텍스트에서 \r\n을 제거합니다.
mysql> update removeDemo set Name=replace(Name,'\r\n',''); Query OK, 3 rows affected (0.12 sec) Rows matched: 3 Changed: 3 Warnings: 0
결과 확인
변경된 후 테이블을 다시 조회해 보겠습니다.
mysql> select *from removeDemo;
줄바꿈 문자가 성공적으로 제거되어 깔끔하게 정렬된 결과를 확인할 수 있습니다.
+----+----------------+ | Id | Name | +----+----------------+ | 1 | JohnSmithCarol | | 2 | LarryMikeSam | | 3 | DavidBobJames | +----+----------------+ 3 rows in set (0.00 sec)
참고 사항
- 공백으로 대체: 단어 사이를 유지하고 싶다면
REPLACE(Name, '\r\n', ' ')처럼 세 번째 인자에 공백을 지정하세요. - 탭 문자 제거: 같은 방식으로
'\t'를 지정하면 탭 문자도 제거할 수 있습니다. - 백업 권장: UPDATE 문은 데이터를 직접 수정하므로, 대량의 데이터를 변경하기 전에는 반드시 백업을 수행하는 것이 좋습니다.