我使用“load data infile”语句在一个表中使用foreach循环加载多个.csv文件。这工作,只有我有一个问题。 .csv中的列不一样。例如,我有这样的:多个CSV到不同列的MySQL
CSV1:
ID,姓名,EAN,说明
CSV2:
ID,名称,图像,EAN,说明
而我的MySQL表格是:
ID,姓名,EAN,说明
,是因为我想通过一个循环导入多个CSV的,我有CSV2一个问题,因为图像列。如果可能,我想将csv列的名称与表列的名称匹配。所以在这个例子中,[image]没有被导入。我可以使用@ignore变量,但是因为每个.csv都不相同,所以这不起作用。我有这个:
$sql = "
LOAD DATA LOCAL INFILE '$value[path]'
INTO TABLE db1.shoptest
FIELDS TERMINATED BY '$value[seperator]'
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
(id, name, ean, description)
;";
是否可以将csv列名与表列名匹配并跳过.csv中的所有其他列?
非常感谢您的帮助!
亲切的问候, 马克
予以明确。那些不是唯一的两种CSV文件格式? – ficuscr 2015-04-03 19:24:32