【问题标题】: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'(如果存在)。

标签: mysql sql load-data-infile


【解决方案1】:

正如 cmets 所指出的,在 Windows 上,而不是:LINES TERMINATED BY '\n' 它需要额外的 \r,例如:LINES TERMINATED BY '\r\n'

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多