首页 > 解决方案 > 从 .csv 文件导入后,是否有人遇到过附加到列条目的额外未知字符?

问题描述

我已经使用 LOAD INTO FILE 填写了我的仪器表。它成功地填充了行,但没有用垂直线包围最后一列(状态)。在我运行查询以检查列条目数 =“调试”之前,我认为这不是问题。

SELECT COUNT(*) FROM instrument WHERE status = 'commissioning';

所有 60 行都包含“调试”,所以它应该返回 60,但它返回 0?

我用通配符搜索重试了查询,并在此处返回了正确的结果(您还可以看到该表未包含在内)

当我从 csv 文件导入时,可能发生了一些事情,因为当“调试”只有 13 个字符时,LENGTH(status) 查询返回 14。有没有人遇到过这种情况或知道什么角色可能导致这种情况?

下面是从 csv 文件代码中导入的内容,以便进一步清楚 - 但它与我的其他表一起工作得很好

标签: mysql

解决方案


您遇到的问题是因为 Windows 使用'\r\n'而不是'\n'. 当您告诉导入语句以完成行时,您在每一行中'\n'都有一个额外的字符。'\r'您需要将导入语句更改为:

LOAD DATA INFILE 'instruments.csv'
INTO TABLE instruments
FILEDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;

推荐阅读