MySQL 在最后一个字段上加载数据封闭字符和字段终止符

MySQL Load Data enclosed character and field terminator on last field

我在将数据加载到 MySQL 时遇到了一个看似基本的问题。我正在使用:

LOAD DATA LOCAL INFILE 'C:/.../Contrato.txt'
INTO TABLE schema.contrato
FIELDS TERMINATED BY ';' ENCLOSED BY '|' LINES TERMINATED BY '/r/n' IGNORE 0 LINES;

文件中的每一行看起来像这样,由另一个程序生成:

|abc|;|cde|;|123|;|456|;|name|\r\n

执行加载时,除了最后一个字段外,所有内容似乎都能正确加载。当我查看 table 时,最后一个字段实际上显示了“|”名称周围的字符。这不是世界末日,但它会那样做很奇怪。截至目前,我正在通过添加“;”来修复它就在 \r\n 字符之前。

这是应该的方式吗??为什么我需要在行终止符之前添加字段终止符才能删除字段包围符?

我可以在其中包含一行的文件上复制效果,多行我只能得到一个条目,其最后一列条目为 "name| |abc" 。

我将“/r/n”更改为“\r\n”并且对于具有单个条目和多个条目的文件以及周围的文件加载工作正常 |已正确删除

LOAD DATA LOCAL INFILE 'C:/.../Contrato.txt'
INTO TABLE schema.contrato
FIELDS TERMINATED BY ';' ENCLOSED BY '|' LINES TERMINATED BY '\r\n' IGNORE 0 LINES;

正确的 MySQL 转义字符是反斜杠而不是正斜杠,它不被视为特殊字符 - 因此您的原始代码正在寻找 4 个字符序列 "forwardslash r forwardslash n" 来终止行