【问题标题】:Importing CSV files into MySql table with one column as name of CSV files将 CSV 文件导入 MySql 表,其中一列作为 CSV 文件的名称
【发布时间】:2013-08-21 07:07:17
【问题描述】:

我有 35 个 CSV 文件要导入 MYSQL 表(比如“测试”)。我想在“测试”表中创建一列(比如“文件名”)。此列将包含从中导入数据的 CSV 的名称。文件名是唯一的 ID,这就是为什么我想在表中获取文件名作为输入。

假设我有 CSV 文件,例如 X1.csv、X2.CSV、X3.csv .... X35.csv。我希望“测试”表中的一列作为“文件名”,这样“测试”表看起来像:


col1 -> a, b, c, d

col2 -> x, y, w, z

... ...

... ....

文件名 -> X1、X1、X2、X3


注意:我尝试在论坛上搜索此问题,但找不到任何合适的解决方案。另外我是MYSQL的新手,即使是微不足道的事情也请帮忙。

【问题讨论】:

    标签: mysql csv import load-data-infile


    【解决方案1】:

    我不确定这正是您正在寻找的,但乍一看,您应该调查LOAD DATA INFILE 声明:

    LOAD DATA INFILE 'X1.csv' INTO TABLE tbl_name -- Load the content of the CSV file
      FIELDS TERMINATED BY ',' ENCLOSED BY '"'    -- assuming fields separate by ",", enclosed by "'"
      LINES TERMINATED BY '\r\n'                  -- assuming end-of-line being '\r\n'
      IGNORE 1 LINES                              -- assuming first line is a header and should be ignored
      SET file_name = 'X1';                       -- force the column `file_name` to be the name of the file
    

    请注意,使用这样的语句,每个字段 将进入表格的自己的。并且 CSV 数据文件的每一行都会在表格中加载 一行。这意味着结果表中将有几行具有相同的文件名。实际上每条数据线一行。

    【讨论】:

      猜你喜欢
      • 2019-04-16
      • 1970-01-01
      • 2016-06-05
      • 2019-03-29
      • 1970-01-01
      • 2023-03-27
      • 2014-10-31
      • 2014-05-12
      相关资源
      最近更新 更多