【问题标题】:MySQL import CSV data - ignore some csv columnsMySQL 导入 CSV 数据 - 忽略一些 csv 列
【发布时间】:2011-03-15 04:27:09
【问题描述】:

我有几个 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 吗?

【问题讨论】:

    标签: mysql csv import


    【解决方案1】:

    您需要更改--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

    【讨论】:

    • 非常感谢,成功了!我整个早上都在阅读那个链接,但没想到这样做:-)
    猜你喜欢
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2017-05-29
    • 2023-03-24
    • 2021-11-30
    • 2016-02-17
    • 2012-07-28
    • 2021-01-03
    相关资源
    最近更新 更多