2016-04-03 58 views
2

這是CSV數據的樣子:Mysql的CSV導入 - 與最後一個字段的問題

"COUNTRY_ALPHA2_CODE","COUNTRY_NUMERIC_CODE","COUNTRY_NAME","REGION_CODE","REGION_NAME" 
"AD","020","Andorra","02","Canillo" 
"AD","020","Andorra","03","Encamp" 
"AD","020","Andorra","04","La Massana" 
"AD","020","Andorra","05","Ordino" 

當我嘗試使用下面的代碼導入它:

LOAD DATA LOCAL INFILE 'COUNTRIES.CSV' 
INTO TABLE countries 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
ESCAPED BY '"' 
LINES TERMINATED BY '\n' 
IGNORE 1 LINES; 
select * from countries; 

我得到很奇怪的行爲最後一個字段,就好像它正在尋找最後一個字段有一個逗號。

+-------------------------+---------------------+---------------------+----------------------+ 
| COUNTRY_NAME   | COUNTRY_ALPHA2_CODE | COUNTRY_ALPHA3_CODE | COUNTRY_NUMERIC_CODE | 
+-------------------------+---------------------+---------------------+----------------------+ 
| Afghanistan    | AF     | AFG     | 004" 
"Ant   | 
| Anguilla    | AI     | AIA     | 660" 
"Alb   | 
| Aland Islands   | AX     | ALA     | 248" 
"Aze   | 
| Andorra  

我看了一下CSV導入的例子,數據似乎是最後沒有逗號的相同格式。不知道如何告訴mysql最後一個字段不會有逗號。

+0

嘗試沒有'ESCAPED BY '「'' – Yazan

+1

這是解決方案的一部分,請參閱下文。謝謝! – NicB

回答

0

OK,與 「按終止線」 玩弄與 「逃脫」 去掉奏效了:

LOAD DATA LOCAL INFILE 'COUNTRIES.CSV' 
INTO TABLE countries 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n' 
IGNORE 1 LINES; 

返回

+-----------------+---------------------+---------------------+----------------------+ 
| COUNTRY_NAME | COUNTRY_ALPHA2_CODE | COUNTRY_ALPHA3_CODE | COUNTRY_NUMERIC_CODE | 
+-----------------+---------------------+---------------------+----------------------+ 
| Aruba   | AW     | ABW     | 533     | 
| Afghanistan  | AF     | AFG     | 004     | 
| Angola   | AO     | AGO     | 024     | 
| Anguilla  | AI     | AIA     | 660     |