问题:
从包含空字段的 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,'') ;
解释:
附加说明:
如果所有字段都可能为空,请将它们全部读入局部变量并使用多个SET 语句有条件地分配 NULL 值。
以上是如何使用 LOAD DATA INFILE 将 NULL 值(而不是零)从 CSV 加载到 MySQL 中?的详细内容。更多信息请关注PHP中文网其他相关文章!