Mysql
將包含換行符的長文本欄位導入 CSV 到 MySQL
我正在嘗試將 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 docs
LOAD DATA
,您可以在語句中設置欄位和行分隔符:[{FIELDS | COLUMNS} [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char'] ] [LINES [STARTING BY 'string'] [TERMINATED BY 'string'] ]
這應該使您能夠導入
TEXT
數據。在選擇分隔符時要小心!