首页 > 解决方案 > 使用 PhpMyAdmin 将多个 CSV 文件合并到一个数据库中

问题描述

我使用 (PhpMyAdmin) 创建了一个数据库,其中包括一个表(包含 4 列),此时数据库为空。我有 5 个 CSV 文件,每个文件包含大约 20 列。我想导入指定的列(例如,来自五个 CSV 文件中的每一个的第 1、2、3 和 4 列)并将它们合并到一个数据库中,换句话说,导入第一个 csv 文件的前 4 列并重复所有文件的程序相同,最后我想要一个有 4 列和多行的数据库

我曾尝试在使用 PhpMyAdmin 时这样做,但它显示了几个错误,并且数据库仍然为空,没有更新。

任何帮助将不胜感激

标签: mysqlphpmyadmin

解决方案


MySQL 的LOAD DATA 语法可以做到这一点..
最小的答案,因为问题信息也很少..

BNF

LOAD DATA
    [LOW_PRIORITY | CONCURRENT] [LOCAL]
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]
    [SET col_name={expr | DEFAULT},
        [, col_name={expr | DEFAULT}] ...]

询问

LOAD DATA LOCAL INFILE 'csv1.csv' INTO TABLE <your_table_name>
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(
    col1
  , col2 
  , col3
  , col4
);

所有查询中的 col1、col2、col3、col4 都必须是您要导入的表的有效列名。您还需要重复您拥有的 foreach csv 文件的语句。


推荐阅读