2010-12-28 15 views
6

No tengo mucha experiencia en SQL, así que debería haber una solución simple a mi problema: Estoy seleccionando una tabla en un archivo separado por comas, y la columna de tipo TEXT tiene caracteres de nueva línea, por lo que cuando intento importar mi csv a Excel, crea filas separadas para cada fragmento de texto que sigue a un carácter de nueva línea.exportando una tabla en MySQL con columnas que tienen caracteres de línea nueva

Aquí es mi consulta:

y
SELECT * FROM `db`.`table` INTO OUTFILE 'c:\\result.txt' FIELDS TERMINATED BY ',' 
ESCAPED BY '\\' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' ; 

entonces en Excel puedo importar como un archivo separado por comas que causa problemas de columna que tiene el texto con caracteres de nueva línea.

¡se agradece cualquier ayuda!

Respuesta

4

Simplemente adjunte todo entre comillas dobles quizás.

SELECT * FROM db.table INTO OUTFILE 'c:/result.txt' FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; 
+0

en este caso, si tengo un campo de texto que tiene un "ABC, BCD" valor de este campo de texto se analiza en dos campos de texto ABC y BCD, ya que hay una coma en el interior. – Lenik

+1

comas dentro de un campo cerrado de cita debe ser ignorado por excel. Al importar a Excel, asegúrese de tener el calificador de texto configurado en " – DeveloperChris

1

Novikov es correcto, pero también podría escapar de los nuevos caracteres de línea al exportar.

SELECT REPLACE(`fieldname1`,'\n','\\n'),`fieldname2` FROM db.table INTO OUTFILE 'c:/result.txt' FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'; 

Esto entonces reemplazar todos los caracteres de nueva línea con la cadena de texto '\ n' Esto no puede ser lo que quiere en la salida embargo.

DC

Cuestiones relacionadas