我想使用命令将txt文件导入mysql数据库。
LOAD DATA LOCAL INFILE 'c:/mydatabase.txt' INTO TABLE mytable COLUMNS TERMINATED BY '\t'但是,数据的一列是包含特殊字符(如"\“)的filepath。我发现上面的import命令跳过了路径名字符串中的所有"\“。
在将数据导入mysql时,有什么方法可以保留特殊的字符吗?
发布于 2013-08-27 08:25:54
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子句中使用该字符。
https://stackoverflow.com/questions/18459847
复制相似问题