我想将几个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?
答案 0 :(得分:15)
您需要更改--columns=B,N,S
并添加参数,以便跳过您不需要的所有列。
例如,为了使用第1,第4和第7列,请使用:
--columns=B,@x,@x,N,@x,@x,S
这会将第2,第3,第5和第6列发送到参数@x。