У меня есть файл CSV, который содержит 10 столбцов. Я хочу выбрать только некоторые столбцы из этого файла и загрузить их в базу данных MySQL с помощью команды LOAD DATA INFILE
.
Как вставить выбранные столбцы из файла CSV в базу данных MySQL с помощью LOAD DATA INFILE
Ответ 1
Загрузите данные в таблицу в MySQL и укажите столбцы:
LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE t1
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'
(@col1,@col2,@col3,@col4) set [email protected],[email protected] ;
@col1,2,3,4 - это переменные для хранения столбцов csv file (предположим 4), id - столбцы таблицы.
Ответ 2
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';
Просто замените column1, column2 и т.д. именами столбцов и поместите @dummy, где есть столбец в CSV, который вы хотите игнорировать.
Подробнее здесь.
Ответ 3
Укажите имя столбцов в CSV в инструкции infile load data.
Код выглядит следующим образом:
LOAD DATA INFILE '/path/filename.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
(column_name3, column_name5);
Здесь вы можете добавить данные только к двум столбцам (вы можете выбрать их с именем столбца) в таблицу.
Единственное, что вам нужно позаботиться, это то, что у вас есть файл CSV (filename.csv) с двумя значениями в строке (строке). В противном случае, пожалуйста, укажите. У меня другое решение.
Спасибо.
Ответ 4
Пример:
содержимое файла 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)
);
Для столбца только 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