2009-10-01 16 views
64

que puede recorrer todas las filas en un script php y hacer¿Cómo eliminar los nuevos caracteres de línea de las filas de datos en mysql?

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

y recorte puede eliminar \ n

Pero me estaba preguntando si algo misma se podría hacer en una consulta?

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

¿funcionará? ¡Entonces puedo ejecutar esta consulta sin tener que pasar por el bucle!

gracias

(PD: Me podría poner a prueba, pero la mesa es bastante grande y no quiero echar a perder con los datos, por lo que acaba de ocurrir si ha probado algo como esto antes)

+0

Sólo puede deshacerse de la cláusula where ... tenga cuidado w/su ajuste, porque aunque es posible que tenga otros personajes de la serie (como el retorno de carro '\ r') – jkelley

+0

Usted debería haber probado que antes de haces esta pregunta Funciona. Si desea probar eso en una mesa grande, puede usar la cláusula LIMIT. –

+0

¿Qué pasa con la cláusula WHERE? Sólo curiosidad –

Respuesta

94

su sintaxis es incorrecta:

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

viniendo de MSSQL, esta sintaxis era muy extraña para mí. ¡Pensé que estabas usando pseudocódigo! pero funcionó :) – Jeff

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

esto no elimina el rastreo \ n, elimina todo \ n, que no se desea aquí. – longneck

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

trabajó para mí.

mientras que su semejante, sino que también va a deshacerse de \ r \ n

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

+3

esto no elimina el \ n final, elimina todo \ n, que no se desea aquí. – longneck

+15

Esto puede no haber funcionado para el OP exacto, pero me ayudó en una situación con la que estaba tratando, +1 –

+0

Funcionó para mí, gracias. – Exoon

11

1) Sustituir todos nueva línea y pestaña caracteres con espacios.

2) Elimine todos los espacios iniciales y posteriores.

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

Por encima está trabajando para el bien.

+3

Este es útil cuando '\ n' no funciona (probado en mysql workbench) – Mohamed23gharbi

1

Elimina los retornos finales al importar desde Excel. Cuando ejecuta esto, puede recibir un error de que no hay DONDE; ignorar y ejecutar.

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

Mis 2 centavos.

Para deshacerse de mi \ n, necesitaba hacer \\ n. Espero que ayude a alguien.

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