上传时从字符串中删除换行符
Posted
技术标签:
【中文标题】上传时从字符串中删除换行符【英文标题】:Removing newline char from string on upload 【发布时间】:2021-08-09 02:17:54 【问题描述】:使用以下内容创建了一个新表:
LOAD DATA LOCAL INFILE 'C:/ProgramData/mysql/MySQL Server 8.0/Uploads/new_tbl_1.csv'
INTO TABLE tbl_1
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
我发现我无法加入此表的最后一列,因为要添加一个额外的字符。
例如,如果我在一条写着“蓝色”的记录上检查 length(field_1)
,它将返回长度 4,除非它是表中的最后一个字段,在这种情况下它返回长度 5。
复制可见记录并粘贴到电子表格时,粘贴如下:
'Blue\r'
我是否上传错误?我该如何解释这个换行符,以免它破坏JOIN
?
【问题讨论】:
这是一个 CR 字符。将\n
更改为\r\n
@Barmar 美丽。任何帮助理解为什么添加它,以及何时使用这两者\r\n?
没有添加,在文件中。
在 Windows 上,CRLF 是正常的换行顺序。
Windows 风格 - NewLine 是 '\r\n'
。 Unix 风格 - NewLine 是'\n'
。 Anycase input preprocessing 可能会考虑到这一点并删除多余的'\r'
(如果存在)。
【参考方案1】:
正如 cmets 所指出的,在 Windows 上,而不是:LINES TERMINATED BY '\n'
它需要额外的 \r
,例如:LINES TERMINATED BY '\r\n'
【讨论】:
以上是关于上传时从字符串中删除换行符的主要内容,如果未能解决你的问题,请参考以下文章