Cómo insertar columnas seleccionadas de un archivo CSV en una base de datos MySQL usando LOAD DATA INFILE

Tengo un archivo CSV que contiene 10 columnas. Quiero seleccionar solo algunas columnas de ese archivo y cargarlas en una base de datos MySQL usando el comando LOAD DATA INFILE .

Cargue datos en una tabla en MySQL y especifique columnas:

 LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (@col1,@col2,@col3,@col4) set name=@col4,id=@col2 ; 

@ col1,2,3,4 son variables para contener las columnas del archivo csv (supóngase 4) name, id son columnas de tabla.

 LOAD DATA INFILE 'file.csv' INTO TABLE t1 (column1, @dummy, column2, @dummy, column3, ...) FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n'; 

Simplemente reemplace la columna1, la columna2, etc. con los nombres de sus columnas, y coloque @dummy donde haya una columna en el archivo CSV que desea ignorar.

Todos los detalles aquí .

Especifique el nombre de las columnas en el archivo CSV en la statement de cargar carga de datos.

El código es así:

 LOAD DATA INFILE '/path/filename.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (column_name3, column_name5); 

Aquí puede agregar datos a solo dos columnas (puede elegirlas con el nombre de la columna) en la tabla.

Lo único que debe tener cuidado es que tiene un archivo CSV (filename.csv) con dos valores por línea (fila). De lo contrario, por favor mencionar. Tengo una solución diferente.

Gracias.

Ejemplo:

contenido del archivo ae.csv:

 "Date, xpto 14" "code","number","year","C" "blab","15885","2016","Y" "aeea","15883","1982","E" "xpto","15884","1986","B" "jrgg","15885","1400","A" 

 CREATE TABLE Tabletmp ( rec VARCHAR(9) ); 

Para poner solo la columna 3:

 LOAD DATA INFILE '/local/ae.csv' INTO TABLE Tabletmp FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 2 LINES (@col1, @col2, @col3, @col4, @col5) set rec = @col3; select * from Tabletmp; 2016 1982 1986 1400 

Para aquellos que tienen el siguiente error:

Código de error: 1290. El servidor MySQL se está ejecutando con la opción –secure-file-priv, por lo que no puede ejecutar esta statement

Simplemente puede ejecutar este comando para ver de qué carpeta pueden cargar archivos:

 SHOW VARIABLES LIKE "secure_file_priv"; 

Después de eso, debe copiar los archivos en esa carpeta y ejecutar la consulta con LOAD DATA LOCAL INFILE lugar de LOAD DATA INFILE .