Mysql

將包含換行符的長文本欄位導入 CSV 到 MySQL

  • September 23, 2019

我正在嘗試將 CSV 文件(’;’ 分隔)導入 MySQL 表。通常,我使用如下 SQL:

LOAD DATA LOCAL INFILE 'local-path/file.csv' 
INTO TABLE tmp_table
CHARACTER SET latin1
FIELDS TERMINATED BY ';'

它對我來說總是很好,但現在我有一個 CSV,其中包含許多“\n”、“\r”之類的文本欄位。顯然,當我進行導入時,MySQL 將換行符解釋為一個新欄位,從而破壞了所有導入。

我想知道是否存在某種方法來指示 MySQL 忽略除“;”之外的任何其他符號。

我正在使用 MySQL 工作台進行導入。我的 CSV 有 3 個欄位(語言環境、id、術語),我的表有列語言環境 - VARCHAR(5)、id- VARCHAR(50) 和術語 - TEXT(這是問題所在)。

在這裡我發現了一些類似的 問題,但顯然不是一回事,我不是在尋找多個分隔符,我只是想要一種在導入 CSV 時忽略文本欄位中的 \n 和 \r 的方法。

根據MySQL docsLOAD DATA ,您可以在語句中設置欄位和行分隔符:

[{FIELDS | COLUMNS}
   [TERMINATED BY 'string']
   [[OPTIONALLY] ENCLOSED BY 'char']
   [ESCAPED BY 'char']
]
[LINES
   [STARTING BY 'string']
   [TERMINATED BY 'string']
]

這應該使您能夠導入TEXT數據。在選擇分隔符時要小心!

引用自:https://dba.stackexchange.com/questions/109425