我希望能够像这样将一个文件加载到一个包含反斜杠的 MySQL 表中:
Fred Los Angeles I am Fred
Nick Madison Great Lakes Whoo
JOHN San Diego Hello world!\
Bob NYC Big apple
用户 JOHN 在第 3 列的末尾放置了一个 \
。当我将其加载到表中时,MySQL 将反斜杠解释为某种行延续并将第 3 行,第 3 行与(第 4 行,第 1 列)。
我不能只通过复制和粘贴来修复它,因为有数百万行这样的行在不同的地方带有反斜杠,造成了严重破坏。
将制表符分隔的文件加载到带有反斜杠的 MySQL 表中的正确方法是什么?我应该用引号将每个(列)字段括起来吗?我应该编写一个删除特殊字符的解析器吗?
最佳答案
加载文件时必须指定 ESCAPED BY
选项。在以下示例中,我假设您的字段按制表符划分(这是默认行为)并且文件位于客户端主机上:
LOAD DATA LOCAL INFILE '/path/to/file/my.txt' INTO TABLE t
FIELDS TERMINATED BY '\t' ESCAPED BY '\b';
关于MySQL将制表符分隔的文件加载到具有特殊字符的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15537199/