MySQL导入CSV数据 - 忽略一些csv列

时间:2010-07-13 07:39:31

标签: mysql csv import

我想将几个CSV文件加载到我的数据库中,但CSV文件包含的列数比我的数据库多得多。如何仅将CSV文件中的选定列导入我的数据库?

为了论证,我们假设CSV包含一个标题行,列标题为A到Z,然后是两百万行,其中包含列A到Z的值。假设我的表myTest包含B,N和S,所以我只想将CSV文件中的B,N和S列导入myTest。

我打算这样做:

mysqlimport --local --columns=B,N,S --ignore-lines=1 --delete --default-character-set=latin1 --fields-optionally-enclosed-by=\" --fields-terminated-by=\, --lines-terminated-by=\r\n myDb myTest.csv

但是,用B,N和S列填充B,N和S行,而不是像我想要的那样用B,N和S列的值填充。

如何建议我如何只导入B,N和S?

1 个答案:

答案 0 :(得分:15)

您需要更改--columns=B,N,S并添加参数,以便跳过您不需要的所有列。

例如,为了使用第1,第4和第7列,请使用:

--columns=B,@x,@x,N,@x,@x,S

这会将第2,第3,第5和第6列发送到参数@x。

参考:http://dev.mysql.com/doc/refman/5.1/en/mysqlimport.html