Estoy tratando de importar un archivo CSV en una tabla de base de datos MySQL. Las filas CSV ser similar al siguiente:¿Cómo escapar las comas dentro de los valores CSV al importar la tabla a MySQL?
"00602"," ","42042","15590","0","0","0","35","9","67","1978","20608","21434","3.1","54700","11384","31.3","30.4","32","18.382809","-67.186759","0","PR","Puerto Rico","U","","787","AGUADA","URB SAN CRISTOBAL","AGUADA","003","72","4","N","0060","","","10380","","Metro","Aguadilla-Isabela-San Sebastián PR","Aguadilla PR MSA","","","","N","0","0","0","0","","0","0","0","0","0","322569","0","","","5456","415","9577","V17136"," "," ","",""
"00602"," ","42042","15590","0","0","0","35","9","67","1978","20608","21434","3.1","54700","11384","31.3","30.4","32","18.382809","-67.186759","0","PR","Puerto Rico","U","","787","AGUADA","COMUNIDAD LAS FLORES","AGUADA","003","72","4","N","0060","","","10380","","Metro","Aguadilla-Isabela-San Sebastián PR","Aguadilla PR MSA","","","","N","0","0","0","0","","0","0","0","0","0","322569","0","","","5456","415","9577","V17136"," "," ","",""
etc...
Como se puede ver, los campos se encierran entre comillas dobles y separados por comas. Sin embargo, algunas filas tienen comas dentro de los valores como la manera (nótese el último valor):
"00501"," ","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","40.81518","-73.0455","25","NY","New York","N","","631","HOLTSVILLE","I R S SERVICE CENTER","SUFFOLK","103","36","5","Y","5602","5380","408","35620","35004","Metro","New York-Northern New Jersey-Long Island NY-NJ-PA","New York-Northern New Jersey-Long Island","Nassau-Suffolk, NY PMSA","Northeast","Middle Atlantic","N","7","0","0","0","B","0","0","0","0","0","18640775","2807500","","","0","1","1","V13916","U"," ","New York-Newark-Bridgeport, NY-NJ-CT-PA","Nassau-Suffolk, NY"
Así es como mi sentencia de importación se parece a:
LOAD DATA INFILE '/file.csv'
REPLACE INTO TABLE zipcodes
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';
Pero no está funcionando como se esperaba. Por ejemplo, la fila primera insertada tiene una columna con el valor siguiente:
Nassau-Suffolk, NY""00501
lugar que debería haber sido:
Nassau-Suffolk, NY
y 00501
debería haber sido insertado como el primer valor de la columna en la siguiente fila .
Cómo ajustar mi SQL para que funcione ¿no?
gracias, funciona perfecto. – TKpop
¿Cómo lo logramos en un procedimiento almacenado, ya que 'LOAD DATA' no está permitido en los SP? – Sawant