2

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

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

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

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

4

1 回答 1

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子句中使用它。

于 2013-08-27T08:25:54.063 回答