簡體   English   中英

無法按預期方式加載數據文件中的選項

[英]Load Data Infile OPTIONALLY ENCLOSED BY not working as expected

許多相關的票務和Tut網站,但不幸的是,到目前為止,還沒有任何解決方案對我有用,這花了幾個小時。

我有很多需要插入到mysql數據庫中的csv文件,使用“加載文件”可以非常快速,輕松地完成它。

但是,它偶然發現了一個部分:示例csv行:

絕對的,格蘭,Anakie,“酷綜合症,超級酷”

我使用的代碼是:

$q = "load data infile '$file' into table $table
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '\"'
    LINES TERMINATED BY '\n';";
    mysql_query($q, $db);

我希望從中得到4個字段,但最終得到5個,它將引號內的逗號視為分隔符。 我認為“可選封閉”的目的是抓住這些情況?

我嘗試過切換命令終止字段和opt所包圍字段的順序。 試圖使它成為封閉。 嘗試不轉義“,也/” /”,嘗試使用2個單引號而不是雙引號;但是我仍然無法理解我希望將“ Cool Synd,Super Cool”作為一個字段。

有人知道我在做什么錯嗎?

這是我的表結構:

在此輸入圖像描述

我只是將所有數據都放在這里,然后對其進行處理,然后將字段移至相關表,並將其轉換為正確的格式。 有問題的列是“所有者”。 我在這里將其更改為文本類型,因為這是其他解決方案,但是無論是文本,char,varchar等,其工作方式都相同。

(在Ubuntu服務器14.4,Apache / 2.4.7,PHP 5.5.9上工作)

我有這個確切的問題,並在這里解決了:

https://arstechnica.com/civis/viewtopic.php?t=366658

只需顛倒順序即可。

$q = "load data infile '$file' into table $table
    FIELDS OPTIONALLY ENCLOSED BY '"'
    TERMINATED BY ','
    LINES TERMINATED BY '\n';";
    mysql_query($q, $db);

您也不需要在雙引號前加反斜杠

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM