【问题标题】:How to import txt file into MySQL keeping the special characters如何将txt文件导入MySQL保留特殊字符
【发布时间】:2013-08-27 07:48:50
【问题描述】:

我想使用命令将一个txt文件导入mysql数据库

LOAD DATA LOCAL INFILE 'c:/mydatabase.txt' INTO TABLE mytable COLUMNS TERMINATED BY '\t'

但是,数据的一列是包含特殊字符(如“\”)的文件路径。我发现上面的导入命令只是跳过了路径名字符串中的所有“\”。

在导入数据到mysql时有什么方法可以保留特殊字符?

【问题讨论】:

    标签: mysql import character


    【解决方案1】:

    LOAD DATA INFILE 还支持FIELDS ESCAPED BY 子句,它允许您指定 MySQL 使用哪个字符来标识字符串中的特殊字符,例如单引号字符串中的单引号或制表符(如在您的FIELDS TERMINATED BY 子句中,表示为\t)。

    FIELDS ESCAPED BY 子句的默认值是\,一个反斜杠,这就是为什么你的路径字符被 MySQL 解释然后忽略的原因;转义非特殊字符只会返回该字符,因此\1 只会返回1。但是,c:\tmp\newfile 这样的文件名会出现问题,因为\t\n 都被解释为特殊字符。

    如果您通过 FIELDS ESCAPED BY '' 将转义字符留空,您的导入将不会解释反斜杠,但如果导入中有需要转义的字符,您可能会遇到其他问题。您可以通过找出用于生成文本文件的转义字符来了解这一点,然后您可以在 FIELDS ESCAPED BY 子句中使用它。

    【讨论】:

    • 是的,已确认,使用: LOAD DATA LOCAL INFILE 'c:/mydatabase.txt' INTO TABLE mytable FIELDS TERMINATED BY '\t' ESCAPED BY '' 我可以使用“\”导入文件路径正确。谢谢。
    猜你喜欢
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多