我使用「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