我试图用向导将数据从csv导入到mysql,包含空值的行不包括在导入的表中。怎么解决呢?
0kjbasz61#
您需要处理csv文件中的NULL,如described on MySQL manual:NULL值的处理因使用的FIELDS和LINES选项而异:对于默认的FIELDS和LINES值,NULL作为字段值\N写入输出,而字段值\N作为NULL读取输入(假定ESCAPED BY字符为)。如果FIELDS ENCLOSED BY不为空,则包含文字NULL作为其值的字段将被读取为NULL值。这与包含在FIELDS ENCLOSED BY字符中的NULL不同,后者将被读取为字符串'NULL'。如果FIELDSESCAPED BY为空,则NULL被写入为NULL字。使用固定行格式(当FIELDS TERMINATED BY和FIELDS ENCLOSED BY都为空时使用),NULL将作为空字符串写入。这将导致表中的NULL值和空字符串在写入文件时无法区分,因为它们都是作为空字符串写入的。如果您需要在重新阅读文件时能够区分这两者,不应使用固定行格式。因此,如果csv数据中存在NULL,请将其替换为\N。例如:更换
1, foo, NULL, bar
签署人:
1, foo, \N, bar
1条答案
按热度按时间0kjbasz61#
您需要处理csv文件中的NULL,如described on MySQL manual:
NULL值的处理因使用的FIELDS和LINES选项而异:
对于默认的FIELDS和LINES值,NULL作为字段值\N写入输出,而字段值\N作为NULL读取输入(假定ESCAPED BY字符为)。
如果FIELDS ENCLOSED BY不为空,则包含文字NULL作为其值的字段将被读取为NULL值。这与包含在FIELDS ENCLOSED BY字符中的NULL不同,后者将被读取为字符串'NULL'。
如果FIELDSESCAPED BY为空,则NULL被写入为NULL字。
使用固定行格式(当FIELDS TERMINATED BY和FIELDS ENCLOSED BY都为空时使用),NULL将作为空字符串写入。这将导致表中的NULL值和空字符串在写入文件时无法区分,因为它们都是作为空字符串写入的。如果您需要在重新阅读文件时能够区分这两者,不应使用固定行格式。因此,如果csv数据中存在NULL,请将其替换为\N。
例如:更换
签署人: