当我加载 infile 时遇到问题,其内容中包含 IP 地址,
在文件里面
[10] Mon 08Jul19 00:10:05 - (8457737) file
"D:\a\b\c\file.zip"
加载文件后,反斜杠被删除
[10] Mon 08Jul19 00:10:05 - (8457737) file
"D:abcfile.zip"
但没有效果,
我想知道如何解决这个问题
提前致谢
通过 stackoverflow、dbjournal 和论坛进行搜索
我尝试过以下方法
FIELDS TERMINATED BY ''
ENCLOSED BY ''
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'
和
FIELDS TERMINATED BY ' '
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
最佳答案
您需要使用FIELDS ESCAPED BY ''
来完全关闭转义。例如:
FIELDS TERMINATED BY ''
ENCLOSED BY ''
ESCAPED BY ''
LINES TERMINATED BY '\r\n'
您所拥有的,FIELDS ESCAPED BY '\\'
表示将输入文件中的反斜杠解释为转义字符(以转义后面的字符)。
所以输入
D:\a\b\c\file.zip
将被读作“D”,后跟冒号,后跟转义的“a”(这只是一个 a)、转义的“b”,依此类推。如果您有一个反斜杠后跟一个“t”,那么它将被读取为 protected 制表符。但是没有与 \a
关联的特殊字符,因此在这种情况下您只会得到“a”。
通过使用FIELDS ESCAPED BY ''
,您可以告诉文件读取器没有转义字符。通过该设置,反斜杠将被读取(并保留)为反斜杠。
如果您需要反斜杠并且还需要其他特殊字符的转义,您可以选择一个您选择的字符作为转义字符。在输入数据本身中没有太多显示的东西(或者它也必须被转义)。不过,我猜这种用法会非常罕见。要么需要转义字符并使用反斜杠作为转义字符(转义实际需要的任何反斜杠),要么完全关闭转义。
关于mysql - 加载内容带有反斜杠的 infile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57040789/