繁体   English   中英

当csv表标题与mySQL表标题不匹配时使用LOAD DATA INFILE语句?

[英]Using LOAD DATA INFILE statement when csv table headings don't match mySQL table headings?

我想要做的是使用php将一些.CSV文件导入到mySQL中。

我将使用LOAD DATA INFILE语句,但是有一个问题:

.CSV文件中的标题与mySQL表中的列不匹配,.CSV文件中还有更多内容。 我知道我可以通过使用像这样的变量来忽略某些columnh:

$insert_query = "LOAD DATA LOCAL INFILE $csvfile
            INTO table $tableName
            FIELDS TERMINATED BY ','
            LINES TERMINATED BY ''
            (col1,col2,col3,@ignore,col4)";

我想知道的是,是否可以将.CSV文件中的数据列分配给mySQL表中的不同列,例如将.CSV中的第一列数据映射到mySQL表的第五列中,例如喜欢:

$insert_query = "LOAD DATA LOCAL INFILE $csvfile
            INTO table $tableName
            FIELDS TERMINATED BY ','
            LINES TERMINATED BY ''
            (col5,col2,col3,@ignore,col4)";

这可能吗? 如果是这样,将不胜感激一些示例! :)

谢谢!

您可以使用适合您问题的语法来执行此操作,并指定列列表:

LOAD DATA INFILE 'path/to/your/file' INTO TABLE yourTable (col1,col2,...);

手册进一步指出:

如果输入文件中字段的顺序与表中列的顺序不同,则还必须指定列列表。 否则,MySQL无法告知如何将输入字段与表列匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM