如何将文本文件导入MySQL保留特殊字符

时间:2013-08-27 07:48:50

标签: mysql import character

我想使用命令

将txt文件导入mysql数据库
LOAD DATA LOCAL INFILE 'c:/mydatabase.txt' INTO TABLE mytable COLUMNS TERMINATED BY '\t'

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

将数据导入mysql时有没有办法保留特殊字符?

1 个答案:

答案 0 :(得分: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子句中使用它。