将 CSV 导入 MySQL 表期间跳过列
将 CSV 文件中的数据导入 MySQL 表是一项常见任务。但是,有时您可能会遇到需要跳过某些列的情况。本文提供了一种跳过不需要的列并正确映射剩余数据的解决方案。
场景
考虑一个包含 11 列的 CSV 文件和一个包含 9 列的 MySQL 表。目标是将 CSV 文件中的第 1-8 列直接映射到 MySQL 表的前 8 列。需要跳过 CSV 文件中的第 9 列和第 10 列,并将第 11 列映射到 MySQL 表中的第 9 列。
原始命令
初始 SQL使用的命令(如下所示)只是将 CSV 文件的前 9 列映射到 MySQL 中的 9 列table.
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n'
解决方案
要在导入过程中跳过列,您可以利用 MySQL 文档中描述的技术。通过在 LOAD DATA 语句中将不需要的列分配给用户变量,您可以有效地丢弃它们。下面修改后的命令演示了此技术:
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n' (column1, @dummy, column2, @dummy, column3, column4, column5, column6, column7, column8, @dummy, @dummy, column11)
在这个改进的命令中,不需要的列(9 和 10)被分配给用户变量 @dummy 并在导入过程中被丢弃。因此,其余列将根据需要正确映射:CSV 文件中的第 1-8 列映射到 MySQL 表的前 8 列,而第 11 列映射到 MySQL 表的第 9 列。
以上是在将 CSV 导入 MySQL 表期间如何跳过列?的详细内容。更多信息请关注PHP中文网其他相关文章!