如何将数据从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; 

我为我的英语道歉!

在此先感谢!

+0

请参阅CSV存储引擎http://dev.mysql.com/doc/refman/5.6/en/csv-storage-engine.html以获得更多乐趣。 – biziclop 2012-03-04 13:54:58

您可以指定列并将不需要的列标记为'@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; 

更换t1column1column2只要你喜欢。要设置其不在数据文件等栏目,你可以做这样的:

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

+0

如果您必须使用此代码,则该表必须包含文件中的所有字段。 – dido 2012-03-04 14:08:35

+0

@dilyan_kn我添加了一个定义一些额外的列的例子。 – SecStone 2012-03-04 14:23:59

+0

哪里shd是data.csv放? – 2013-06-09 13:51:40

也许你可以将它导入一个包含所有列的表格(以匹配CSV),然后选择 - 插入到目标表中?