首页 > 数据库 > mysql教程 > 使用 LOAD DATA INFILE 将 CSV 文件导入 MySQL 时如何跳过列?

使用 LOAD DATA INFILE 将 CSV 文件导入 MySQL 时如何跳过列?

DDD
发布: 2024-11-17 18:21:02
原创
231 人浏览过

How can I Skip Columns When Importing a CSV file into MySQL using LOAD DATA INFILE?

使用 MySQL 的 LOAD DATA INFILE 跳过 CSV 导入中的列

将数据从 CSV 文件导入 MySQL 表时,并不总是需要映射所有列。有时需要跳过不相关的列或避免映射存在数据不匹配的列。

问题:

考虑一个包含 11 列的 CSV 文件:

col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11
登录后复制

只有 9 列的 MySQL 表:

col1, col2, col3, col4, col5, col6, col7, col8, col9
登录后复制

目标是将 CSV 中的第 1 列到第 8 列导入到 MySQL 表的前 8 列,但跳过第 9 列和第 10 列,然后将 CSV 的第 11 列映射到表的第 9 列。

解决方案:

要在导入过程中跳过 CSV 中的列,请在LOAD DATA INFILE 命令:

LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table (
    col1,
    @dummy1,
    col2,
    @dummy2,
    col3,
    col4,
    col5,
    col6,
    col7,
    col8,
    @dummy3,
    @dummy4,
    col9
)
FIELDS TERMINATED BY ','
ENCLOSED BY ''
LINES TERMINATED BY '\n'
登录后复制

在此命令中:

  • @dummy1、@dummy2、@dummy3 和 @dummy4 是用户变量,用于保存跳过的值
  • CSV 文件的第 9 列和第 10 列将分别分配给 @dummy3 和 @dummy4,因此它们将被有效地丢弃。

此解决方案允许选择性地将 CSV 列映射到表列,即使它们的数量不同。

以上是使用 LOAD DATA INFILE 将 CSV 文件导入 MySQL 时如何跳过列?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板