Mysql
更正查詢的“行終止於”
我正在嘗試查詢兩個數據表並將它們發送到 csv 文件以上傳到網站。但是,我無法讓格式打球。我希望標題分成列,然後將相關數據與數據正文中的列對齊。
我目前最接近實現我的目標 -
FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY ''
哪個返回 -
但是你可以看到我的問題。任何帶有“\”的元件號都會呈現到錯誤的列中,並且數據與標題不一致。
現在請記住,表格總是每秒更新一次,我無法控制數據的上傳方式。我無法從零件# 中刪除“\”。
我需要一個忽略“\”的解決方法。
這很難解釋,所以…
TLDR:- 我需要所有數據都像圖片中的大多數行一樣排列,“欄位/行終止於”參數是什麼?
請參閱答案底部的 mydata.csv 文件。
我創建了一個表 xy
CREATE TABLE `xy` ( `fred` int(11) DEFAULT NULL, `mary` int(11) DEFAULT NULL, `billy` varchar(50) DEFAULT NULL );
從這裡的文件中,我嘗試了這個
LOAD DATA INFILE 'mydata.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'
但這失敗了(只導入了一行)。我將 \r\n 更改為 \n (Unix),這樣更好(所有行都導入了,但在 VARCHAR 欄位中沒有 \ - 它們被簡單地刪除了)。
進一步的Google搜尋把我帶到了這裡
所以我嘗試了這個(來自答案)
LOAD DATA INFILE 'mydata.csv' INTO TABLE xy FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '' LINES TERMINATED BY '\n';
(注意 ESCAPED BY ’’ - 即什麼都沒有 - \ 是預設的轉義字元)。
這有效(下表 xy 中的四行範例)
| 2 | 3 | asf\dsadfs | | 2 | 3 | asfdsadfs | | 2 | 3 | asfdsadfs | | 2 | 3 | asf\dsadfs |
我的範例 mydata.csv 文件
2,3,asfdsadfs 2,3,asfdsadfs 2,3,asfdsadfs 2,3,asfdsadfs 2,3,asfdsadfs 2,3,asfdsadfs 2,3,asfdsadfs 2,3,asf\dsadfs 2,3,asfdsadfs 2,3,asfdsadfs 2,3,asf\dsadfs 2,3,asfdsadfs 2,3,asfdsadfs 2,3,a\sfdsadfs 2,3,asfdsadfs 2,3,asfdsadfs