mysql - 加载内容带有反斜杠的 infile

标签 mysql

当我加载 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/

相关文章:

php - 冗余数据总是不行吗

php - 从 MySQL 的字符串中解析 HTML 标签

php - 多个表中的多个插入和选择语句到一个查询中?

php - 如何替换 date_format 中 sprintf 中的多个 %s?

mysql - SQL 查询以查找 invoicedate 在日期范围内到期的发票

mysql - 如何将一行中的条目复制到另一行,但在mysql的同一列中

mysql - 我的windows7系统中的WAMP问题

php - 如何自动将新的 id 值设置为已删除行的 id

php - MySQL:在更新期间添加数字

c++ - 我想知道为什么两个输出不同