[英]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.