如何将数据从CSV导入到MySQL?
问题描述:
我csv文件具有以下结构:如何将数据从CSV导入到MySQL?
A BA0011 U206 NAME 0000000000000149.00 000000.00 0000000000000118.93 S N N
A BB0011 U206 NAME 0000000000000150.00 000000.00 0000000000000118.93 S N N
A BC0011 U206 NAME 0000000000000151.00 000000.00 0000000000000118.93 S N N
A BD0011 U206 NAME 0000000000000152.00 000000.00 0000000000000118.93 S N N
A BE0011 U206 NAME 0000000000000153.00 000000.00 0000000000000118.93 S N N
使用下面的MySQL功能如何,我可以在MySQL表中导入第一和第三列:
LOAD DATA INFILE 'data.csv' INTO TABLE tbl_name
FIELDS TERMINATED BY \t' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
我为我的英语道歉!
在此先感谢!
答
您可以指定列并将不需要的列标记为'@dummy'。
LOAD DATA INFILE 'data.csv'
INTO TABLE t1
(column1, @dummy, column2, @dummy, @dummy, @dummy, @dummy, @dummy, @dummy, @dummy)
FIELDS TERMINATED BY '\t' ENCLOSED BY
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
更换t1
,column1
和column2
只要你喜欢。要设置其不在数据文件等栏目,你可以做这样的:
LOAD DATA INFILE 'data.csv'
INTO TABLE t1
(column1, @dummy, column2, @dummy, @val, @dummy, @dummy, @dummy, @dummy, @dummy)
FIELDS TERMINATED BY '\t' ENCLOSED BY
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
SET column3 = "test", column4 = CURRENT_TIMESTAMP, column5 = @val/10;
有关进一步的参考,我建议你看一看的MySQL reference。
答
也许你可以将它导入一个包含所有列的表格(以匹配CSV),然后选择 - 插入到目标表中?
请参阅CSV存储引擎http://dev.mysql.com/doc/refman/5.6/en/csv-storage-engine.html以获得更多乐趣。 – biziclop 2012-03-04 13:54:58