2011-05-05 89 views
17

Estoy intentando cargar un archivo CSV en MySQL utilizando la técnica CARGA DATA INFILE. Está funcionando bien, pero tengo un problema donde algunas columnas usan comillas dobles y otras no.MySQL "LOAD DATA INFILE" y que faltan comillas dobles

Ejemplo:

something,123,something,"Bauer, Jack",123,something 

Lo que sucede es las comas dentro de las comillas rompen la importación, por lo que mis datos están todos jacked al final. No estoy seguro de cómo obtener la importación para escapar de las comas dentro de las comillas dobles.

mysql --user=<USER> --password=<PASS> -e "LOAD DATA INFILE '<FILENAME>' INTO TABLE <TABLENAME> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (col1, col2, col3, ...)" <DATABASE> 

Respuesta

29

es necesario ejecutar la sentencia LOAD DATA INFILE con la opción adicional

FIELDS OPTIONALLY ENCLOSED BY '"' 

Así, toda la declaración convertirse

LOAD DATA INFILE '<FILENAME>' INTO TABLE <TABLENAME> 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n' 
(col1, col2, col3, ...) 

Para lecturas adicionales, por favor consulte la excelente ejemplo MySQL Reference Manual para MySQL 5.1 GA.

+0

muy útil su respuesta –

+0

1 ¿Hay una manera de quitar las cotizaciones opcionalmente? –

+0

muy útil, gracias. Tenía 'CAMPOS OPCIONALMENTE encerrada por '"' 'y la repetición de 'fields' provocó el error. MySQL es implacable. –

0

Esperemos que se han dado cuenta de qué hacer a estas alturas, pero si usted no tiene que espero que esto le ayudará a cabo.

he tenido problemas en Excel 2007 a exportar a un archivo CSV personalizado. He descubierto que se puede cambiar el terminador de los campos aquí: http://www.tek-tips.com/viewthread.cfm?qid=1635599&page=15

Yo prefiero usar la tubería | carácter, ya que es poco común, y un poco más flexible cuando se trata de pulgadas ", pie" mediciones.

+0

No estoy seguro que esto tiene que ver con Excel – dstarh

Cuestiones relacionadas