2009-10-01 4 views
64

Ho possibile scorrere tutte le righe in uno script PHP e fareCome rimuovere i caratteri della nuova riga dalle righe di dati in mysql?

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

e finiture in grado di rimuovere \ n

Ma mi stavo chiedendo se qualcosa lo stesso potrebbe essere fatto in una query?

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

funzionerà? Posso quindi solo eseguire questa query senza richiedere il loop!

grazie

(PS: ho potuto testare, ma tavolo è abbastanza grande e non voglio fare confusione con i dati, quindi solo pensato se hai provato qualcosa di simile prima)

+0

Si può solo sbarazzarsi della clausola in cui ... state attenti w/il vostro assetto, però, perché si potrebbe avere altri personaggi del set (come ritorno a capo '\ r') – jkelley

+0

Dovreste aver provato prima fai questa domanda Funziona. Se vuoi testarlo sul grande tavolo puoi usare la clausola LIMIT. –

+0

Cosa c'è di sbagliato nella clausola WHERE? Solo curioso –

risposta

94

tua sintassi è sbagliata:

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

proveniente da MSSQL, questa sintassi era molto estranea a me. Pensavo avessi usato lo pseudocodice! ma ha funzionato :) – Jeff

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

questo non rimuove il trailing \ n, rimuove tutto \ n, che non è desiderato qui. – longneck

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

ha lavorato per me.

mentre il suo simile, sarà anche sbarazzarsi di \ r \ n

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

+3

questo non rimuove il trailing \ n, rimuove tutto \ n, che non è desiderato qui. – longneck

+15

Questo potrebbe non aver funzionato per l'esatto OP, ma ha aiutato in un punto con cui avevo a che fare, +1 –

+0

Ha funzionato per me, grazie. – Exoon

11

1) Sostituire tutti scheda nuova linea e caratteri con spazi.

2) Rimuovere tutti gli spazi iniziali e finali.

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),''));

Sopra sta lavorando per bene.

+3

Questo è utile quando '\ n' non funziona (testato su mysql workbench) – Mohamed23gharbi

1

Rimuove i rendimenti finali durante l'importazione da Excel. Quando lo esegui, potresti ricevere un errore che non esiste DOVE; ignorare ed eseguire.

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

I miei 2 centesimi.

Per sbarazzarsi di mio \ n's avevo bisogno di fare un \\ n. Spero che aiuti qualcuno.

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