跳過CSV 匯入到MySQL 中的欄位
使用LOAD DATA INFILE 指令將CSV 檔案匯入到MySQL 表時,通常會出現以下情況:遇到CSV檔案中的列數與目標表中的列數不同的場景。在這種情況下,跳過特定列就變得很有必要。
問題:
假設您有一個包含 11 個欄位的 CSV 檔案和一個只包含 9 個欄位的 MySQL 表。您希望將 CSV 檔案的第 1-8 列直接對應到表格的第 1-8 列,但跳過接下來的兩列,並將 CSV 檔案的第 11 列對應到表格的第 9 列。
解決方案:
要在匯入過程中跳過列,可以利用 MySQL 為使用者變數賦值的功能,而無需將它們插入表中列。這是透過將跳過的列分配給使用者變量,有效地忽略它們的值來實現的。
這是完成所需映射的修改後的SQL 指令:
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n' (column1, @dummy1, column2, @dummy2, column3, column4, column5, column6, column7, column8, @dummy3, column9);
在此修改後的指令中,兩個使用者變數(@dummy1 和@dummy2)分別用於捕獲CSV 檔案中第九列和第十列的值,但這些值未指派給任何表列。因此,它們被有效地跳過,從而使 CSV 檔案的第 11 列正確地對應到表的第 9 列。
以上是如何在 CSV 匯入 MySQL 期間跳過列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!