mysql의 데이터 행에서 새 줄 문자를 제거하는 방법은 무엇입니까?


87

PHP 스크립트의 모든 행을 반복하고

UPDATE mytable SET title = "'.trim($row['title']).'" where id = "'.$row['id'].'";

트림은 제거 할 수 있습니다. \ n

하지만 하나의 쿼리에서 동일한 작업을 수행 할 수 있는지 궁금합니다.

 update mytable SET title = TRIM(title, '\n') where 1=1

작동할까요? 그런 다음 반복 할 필요없이이 쿼리를 실행할 수 있습니다!

감사

(추신 : 테스트 할 수는 있지만 테이블은 상당히 크고 데이터를 엉망으로 만들고 싶지 않으므로 이전에 이와 같은 것을 테스트했다면 생각했습니다)


where 절을 제거 할 수 있습니다. 세트에 다른 문자 (예 : 캐리지 리턴 '\ r')가있을 수 있으므로 트림시주의해야합니다.
jkelley

이 질문을하기 전에 테스트 했어야합니다. 효과가있다. 큰 테이블에서 테스트하려면 LIMIT 절을 사용할 수 있습니다.
Lukasz Lysik

WHERE 절의 문제점은 무엇입니까? 그냥 궁금해
Phill Pafford

@PhillPafford 기술적으로는 아무것도 아닙니다. (나는 이것이 5 살 이상이라는 것을 알고 있지만 다른 사람들이 그것을 읽는 데 도움이 될 수 있습니다.)
Bing

답변:


121

구문이 잘못되었습니다.

update mytable SET title = TRIM(TRAILING '\n' FROM title)

부가:

개행 문자가 필드의 시작 부분에있는 경우 :

update mytable SET title = TRIM(LEADING '\n' FROM title)

6
MSSQL에서 온이 구문은 나에게 매우 이질적이었습니다. 나는 당신이 의사 코드를 사용하고 있다고 생각했습니다! 하지만 작동했습니다 :)
Jeff

에 문서 TRIM () 참조.
Mark G

121
UPDATE test SET log = REPLACE(REPLACE(log, '\r', ''), '\n', '');

나를 위해 일했습니다.

비슷하지만 \ r \ n도 제거합니다.

http://lists.mysql.com/mysql/182689


8
이것은 후행 \ n을 제거하지 않고 \ n 모두 제거하므로 여기서는 바람직하지 않습니다.
longneck

20
이것은 정확한 OP에 대해서는 효과가 없었을 수 있지만 내가 다루던 문제에 도움이되었습니다. +1
Mike Purcell

나를 위해 일했습니다, 감사합니다.
Exoon 2015-04-06

정확히 내가 필요한 것.
user3453428 nov.

14

1) 모든 새 줄 문자를 공백으로 바꿉니다 .

2) 모든 선행 및 후행 공백을 제거하십시오 .

 UPDATE mytable SET `title` = TRIM(REPLACE(REPLACE(REPLACE(`title`, '\n', ' '), '\r', ' '), '\t', ' '));

9

update mytable set title=trim(replace(REPLACE(title,CHAR(13),''),CHAR(10),''));

위는 잘 작동합니다.


3
이것은 '\ n'이 작동하지 않을 때 유용합니다 (mysql 워크 벤치에서 테스트 됨)
Mohamed23gharbi

6

Excel에서 가져올 때 후행 반환을 제거합니다. 이를 실행하면 WHERE가 없다는 오류가 표시 될 수 있습니다. 무시하고 실행하십시오.

UPDATE table_name SET col_name = TRIM(TRAILING '\r' FROM col_name)

2
UPDATE mytable SET title=TRIM(REPLACE(REPLACE(title, "\n", ""), "\t", ""));

4
이것은 후행 \ n을 제거하지 않고 \ n 모두 제거하므로 여기서는 바람직하지 않습니다.
longneck

0

내 2 센트.

내 \ n을 제거하려면 \\ n을 수행해야했습니다. 누군가에게 도움이되기를 바랍니다.

update mytable SET title = TRIM(TRAILING '\\n' FROM title)

0

줄 바꿈 문자

UPDATE table_name SET field_name = TRIM(TRAILING '\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r\n' FROM field_name);

모든 공백 문자

UPDATE table_name SET field_name = TRIM(field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\r\n' FROM field_name);
UPDATE table_name SET field_name = TRIM(TRAILING '\t' FROM field_name);

더 읽기 : MySQL TRIM 함수


0

위의 답변으로 재생하면 이것은 나를 위해 작동합니다.

REPLACE(REPLACE(column_name , '\n', ''), '\r', '')
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.