0
LOAD DATA LOCAL INFILE 'c:/mydatabase.txt' INTO TABLE mytable COLUMNS TERMINATED BY '\t'
但是導入txt文件到MySQL數據庫中,一列數據是包含了像「特殊字符的文件路徑\ 」。我發現上面的導入命令只是跳過路徑名字符串中的所有「\」。
有沒有什麼辦法可以在將數據導入到mysql時保留特殊字符?
LOAD DATA LOCAL INFILE 'c:/mydatabase.txt' INTO TABLE mytable COLUMNS TERMINATED BY '\t'
但是導入txt文件到MySQL數據庫中,一列數據是包含了像「特殊字符的文件路徑\ 」。我發現上面的導入命令只是跳過路徑名字符串中的所有「\」。
有沒有什麼辦法可以在將數據導入到mysql時保留特殊字符?
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
子句中使用該轉義字符。
是的,確認,用:LOAD DATA LOCAL INFILE'c:/mydatabase.txt'INTO TABLE mytable FIELDS TERMINATED BY'\ t'ESCAPED BY''我可以正確導入帶有「\」的文件路徑。謝謝。 – user2571369