mysql - 从 .csv 文件导入后,是否有人遇到过附加到列条目的额外未知字符?
问题描述
我已经使用 LOAD INTO FILE 填写了我的仪器表。它成功地填充了行,但没有用垂直线包围最后一列(状态)。在我运行查询以检查列条目数 =“调试”之前,我认为这不是问题。
SELECT COUNT(*) FROM instrument WHERE status = 'commissioning';
所有 60 行都包含“调试”,所以它应该返回 60,但它返回 0?
我用通配符搜索重试了查询,并在此处返回了正确的结果(您还可以看到该表未包含在内)
当我从 csv 文件导入时,可能发生了一些事情,因为当“调试”只有 13 个字符时,LENGTH(status) 查询返回 14。有没有人遇到过这种情况或知道什么角色可能导致这种情况?
解决方案
您遇到的问题是因为 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;
推荐阅读
- java - Java - 尽管服务器从客户端接收数据,但客户端不会从服务器接收数据
- spring-boot - 配置多个 OAuth2 授权服务器和单个资源服务器之间的通信
- r - 在闪亮的仪表板中设置 bsButton 位置
- docker - 如何将容器链接传递给子容器?
- css - Flexbox 行在 VS2015 Update 3 设计视图中显示为列
- javascript - 动态创建嵌套列表项
- angular - 是否可以使用 Angular 7 以文本形式构建动态 URL
- python - 如何下载 xlsm 文件并使用 openpyxl 读取它?
- javascript - HTML 未在 div 内格式化生成错误
- c# - 检查二维数组的行是否为真