这就是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最后一个字段没有逗号。

最佳答案

好吧,玩“行终止于”并删除“逃逸于”的把戏完成了:

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                  |

07-28 08:55