2013-08-27 44 views
0

我想用命令如何导入txt文件到MySQL保持特殊字符

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

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

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

回答

0

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子句中使用该转义字符。

+0

是的,确认,用:LOAD DATA LOCAL INFILE'c:/mydatabase.txt'INTO TABLE mytable FIELDS TERMINATED BY'\ t'ESCAPED BY''我可以正确导入带有“\”的文件路径。谢谢。 – user2571369