MySQL 不会 CSV 导入 \N 作为 NULL

Posted

技术标签:

【中文标题】MySQL 不会 CSV 导入 \\N 作为 NULL【英文标题】:MySQL doesn't CSV-import \N as NULLMySQL 不会 CSV 导入 \N 作为 NULL 【发布时间】:2012-11-18 20:11:28 【问题描述】:

我正在尝试使用 phpMyAdmin 将 CSV 文件导入 mysql 5.1 DB。该文件包括几个可能包含NULL 值的日期列。 According to the manual、NULL 应写为\N。但是,在成功导入后,\N 在日期列中显示为 0000-00-00(与 NULL 相对)。如何导入 NULL?

选项集:

行分隔符, " 包围的字段, \ 转义的字段, 以auto 结尾的行。

【问题讨论】:

【参考方案1】:

phpMyAdmin 区分两种 CSV 导入格式:CSVCSV with LOAD DATA。后一个选项实际上接受\N,如手册中所述。

如果列被一个字符包围(就是这种情况),也可以使用前一种方法(没有LOAD DATA)通过将值设置为CSV文件中的非封闭NULL来导入NULL。这符合manual的如下声明:

如果 FIELDS ENCLOSED BY 不为空,则包含文字的字段 word NULL 作为其值被读取为 NULL 值。这不同于 包含在 FIELDS ENCLOSED BY 字符中的单词 NULL,读取 作为字符串'NULL'。

【讨论】:

以上是关于MySQL 不会 CSV 导入 \N 作为 NULL的主要内容,如果未能解决你的问题,请参考以下文章

mysql 表导入向导无法导入 csv 文件

MySQL 仅从 CSV 导入单行

MySQL 仅从 CSV 导入单行

如何在某些元素中处理带有 nul char 的 CSV 行?

几个CSV大文件如何导入mysql数据库,并更新替换对应数据?

如何将 CSV 文件导入 MySQL 表