簡體   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