2013-08-27 73 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