MySQL导入CSV数据-忽略一些csv列
我有几个 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
但这会用 A、B 和 C 列的值填充 B、N 和 S 行,而不是像我想要的那样用 B、N 和 S 列的值填充。
有什么建议可以让它只导入 B、N 和 S 吗?
I have a couple of CSV files I want to load into my database, but the CSV file contains many many more columns than in my database. How do I import only selected columns from the CSV file into my database?
For arguments sake, let's say the CSV contains a header row with the column titles A to Z, and then two million rows with values for columns A to Z. Let's say my table myTest contains B, N and S, so I only want to import column B, N and S from the CSV file into myTest.
I was planning to do:
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
But that fills row B,N and S with the values of column A, B and C, not with the values of column B, N and S like I wanted.
Any suggestions how I can make it import only B, N and S?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要更改
--columns=B,N,S
并添加参数以跳过所有不需要的列。例如,为了使用第 1、第 4 和第 7 列,请使用:
这会将第 2、第 3、第 5 和第 6 列发送到参数 @x。
参考: http://dev.mysql.com/doc/refman/5.1 /en/mysqlimport.html
You need to alter the
--columns=B,N,S
and add parameters in order to skip all the columns you do not need.For instance, in order to use 1st, 4th and 7th column use:
This will send the 2nd, 3rd, 5th and 6th column to parameter @x.
Ref: http://dev.mysql.com/doc/refman/5.1/en/mysqlimport.html