跳过 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中文网其他相关文章!