首页 > 数据库 > mysql教程 > 如何使用 LOAD DATA INFILE 将 NULL 值(而不是零)从 CSV 加载到 MySQL 中?

如何使用 LOAD DATA INFILE 将 NULL 值(而不是零)从 CSV 加载到 MySQL 中?

Mary-Kate Olsen
发布: 2024-12-22 07:28:09
原创
729 人浏览过

How to Load NULL Values, Not Zeros, from a CSV into MySQL using LOAD DATA INFILE?

MySQL:从 CSV 数据加载 NULL 值

问题:

从包含空字段的 CSV 文件加载数据时使用 LOAD DATA INFILE 命令写入 MySQL 表时,MySQL 会将 0 分配给空字段而不是 NULL,即使列定义了 NULL 默认值。

解决方案:

要正确加载空字段的 NULL 值,请将有问题的字段读入局部变量,然后有条件地设置如果变量是,则实际字段值为 NULL空:

LOAD DATA INFILE '/tmp/testdata.txt'
INTO TABLE moo
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\n"
(one, two, three, @vfour, five)
SET four = NULLIF(@vfour,'')
;
登录后复制

解释:

  • LOAD DATA INFILE 语句将 CSV 文件中的数据读取到 moo 表中。
  • FIELDS 子句定义 CSV 文件中的字段及其对应的列名称
  • 第四个字段 (@vfour) 被读入局部变量,而不是直接读入第四列。
  • SET 语句检查 @vfour 变量是否为空 ('')使用NULLIF函数。
  • 如果@vfour为空,则第四列设置为NULL;

附加说明:

如果所有字段都可能为空,请将它们全部读入局部变量并使用多个SET 语句有条件地分配 NULL 值。

以上是如何使用 LOAD DATA INFILE 将 NULL 值(而不是零)从 CSV 加载到 MySQL 中?的详细内容。更多信息请关注PHP中文网其他相关文章!

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