2009-10-01 13 views
64

mogę pętli przez wszystkie wiersze w skrypcie php i zrobićJak usunąć znaki nowego wiersza z wierszy danych w mysql?

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

i wykończenia można usunąć \ n

Ale ja po prostu zastanawiasz się, czy coś samo można zrobić w jednym zapytaniu?

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

czy to działa? Mogę wtedy po prostu wykonać to zapytanie bez potrzeby przepuszczania!

dzięki

(PS: mogę go przetestować, ale tabela jest dość duży i nie chcą zadzierać z danymi, tak po prostu, że jeśli przetestowaniu coś takiego wcześniej)

+0

można po prostu pozbyć klauzuli WHERE ... być ostrożnym w/swojej wykończenia chociaż ponieważ może mieć inne postacie w zestawie (jak powrót karetki „\ r”) – jkelley

+0

Trzeba było testowane, że przed zadajesz to pytanie. To działa. Jeśli chcesz przetestować to na dużym stole, możesz użyć klauzuli LIMIT. –

+0

Co jest nie tak z klauzulą ​​WHERE? Po prostu ciekawy –

Odpowiedz

94

składnia jest źle:

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

pochodzące z MSSQL, ta składnia była dla mnie bardzo obca. Myślałem, że używasz pseudokodu! ale zadziałało :) – Jeff

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

to nie usuwa końcowego \ n, to usuwa wszystkie \ n, co nie jest pożądane tutaj. – longneck

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

pracował dla mnie.

podczas jej podobne, to będzie również pozbyć się \ r \ n

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

+3

to nie usuwa końcowego \ n, to usuwa wszystkie \ n, co nie jest pożądane tutaj. – longneck

+15

To mogło nie zadziałało dokładnie dla OP, ale pomogło mi w sadze, z którą miałem do czynienia, +1 –

+0

Pracowałem dla mnie, dziękuję. – Exoon

11

1) zastąpić znaki wszystko i Tab nowej linii spacjami.

2) Usuń wszystkie spacje wiodące i końcowe.

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

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

Above pracuje dla grzywny.

+3

Ten jest przydatny, gdy "\ n" nie działa (testowane w środowisku roboczym mysql) – Mohamed23gharbi

1

Usuwa końcowe sprowadzenia podczas importowania z programu Excel. Kiedy to zrobisz, możesz otrzymać błąd, że nie ma GDZIE; zignoruj ​​i wykonaj.

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

Moje 2 centy.

Aby pozbyć się moich \ n, musiałem zrobić \\ n. Mam nadzieję, że pomaga komuś.

update mytable SET title = TRIM(TRAILING '\\n' FROM title) 
Powiązane problemy