【发布时间】:2022-01-18 20:54:09
【问题描述】:
我使用的是 MySQL 5.7.35。如果我在 CSV 文件中使用 LOAD DATA INFILE 命令,其中 NULL 作为 CSV 文件中未引用的字符串值,则该值在 MySQL 中导入为 NULL。
例如,如果我导入具有以下内容的 CSV 文件:
record_number,a,b,c,d,e,f
1,1,2,3,4,5,6
2,NULL,null,Null,nUlL,,"NULL"
导入的表将具有以下值:
+---------------+------+--------+--------+--------+--------+--------+
| record_number | a | b | c | d | e | f |
+---------------+------+--------+--------+--------+--------+--------+
| 1 | 1 | 2 | 3 | 4 | 5 | 6 |
| 2 | NULL | "null" | "Null" | "nUlL" | "" | "NULL" |
+---------------+------+--------+--------+--------+--------+--------+
有没有什么办法可以在不修改 CSV 文件的情况下强制将 a 列记录 2 作为字符串导入?
更新
@Barmar 指出 MySQL 文档中有一段关于这种行为 here:
如果 FIELDS ENCLOSED BY 不为空,则包含文字的字段 word NULL 作为其值被读取为 NULL 值。这不同于 包含在 FIELDS ENCLOSED BY 字符中的单词 NULL,读取 作为字符串'NULL'。
【问题讨论】: