【问题标题】:How I can Import data from CSV to MySQL?如何将数据从 CSV 导入 MySQL?
【发布时间】:2012-03-22 06:13:15
【问题描述】:

我有以下结构的 csv 文件:

    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;

我为我的英语道歉!

提前致谢!

【问题讨论】:

标签: mysql csv import


【解决方案1】:

也许您可以将其导入包含所有列的表中(以匹配 CSV),然后将其选择插入到您的目标表中?

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 如果必须使用此代码,表格必须包含文件中的所有字段。
    • @dilyan_kn 我添加了一个示例,它定义了一些额外的列。
    • data.csv 应该放在哪里?
    猜你喜欢
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多