2017-03-23 76 views
1

我是一個新來的mysql,我嘗試加載csv文件到mysql。 的CSV這樣的:mysql加載數據infile它包含比輸入列更多的數據

1,"a,b" 
2,bc 
3,d 

表是這樣的:

create table test(ind varchar(10),var varchar(20)); 

當我打開這個CSV文件:

load data infile 'test.csv' into table test 
fields terminated by ',' ; 

我改變這個 警告:

行1被截斷:它包含了更多的數據比出現了輸入列 我試試這個:

load data infile 'test.csv' into table test 
fields terminated by ',' 
optionally enclosed by '"' 

這是行不通的。

「a,b」的共同點會導致此錯誤。但我不知道如何解決這個問題。

+0

'它不工作'...第二次嘗試使用'''''發生了什麼? –

+0

@TimBiegeleisen是的,當我添加可選的'''時,ind列只包含1 ,var列中包含「a,b」2,bc 3,d – pang2016

+0

我想'LOAD DATA'沒有看到你的換行符出於某種原因。我在下面給了你一個建議。 –

回答

2

聽起來好像LOAD DATA在你的換行符上沒有正確的提取。嘗試添加LINES TERMINATED BY ...您的來電:

LOAD DATA INFILE 'test.csv' INTO TABLE test 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'   -- use '\n' if on Linux 
(ind, var) 

通過上述電話時​​,MySQL不應該把第一引述項"a,b"裏面的逗號作爲字段分隔符,而只是列的文本的一部分。