mySQL的负载数据本地infile的数目不正确格式

问题描述:

我有格式化这样一个csv文件,mySQL的负载数据本地infile的数目不正确格式

sth, sth, "100,000,000", sth, "200,000" 
sth, sth, "200,000,000", sth, "500,000" 

当我使用

mysql> load data local infile "thefile.csv" into table mytable terminated by ',' enclosed by '"' lines terminater by '\r\n'; 

则号码如“亿”,“500000”是截断。

请帮帮我!

+0

截断如何?你在加载数据的领域是什么样的领域? –

试试这个办法在PHP中:

$in = fopen('filename.csv', 'r'); 
while (($row = fgetcsv($in, 10000, ',', '"')) !== false) { 
    mysql_query("INSERT INTO ...."); 
} 
fclose($in); 

参考:fgetcsv

+0

我不确定这是否会比OP的原始代码更好 - 看到问题可能是数字中的逗号 –

+0

我认为它可行,这要归功于'$ enclosure ='“'' – JellyBelly

从CSV文件删除空格:

sth,sth,"100,000,000",sth,"200,000" 
sth,sth,"200,000,000",sth,"500,000" 

,并尝试使用该语句加载数据 -

LOAD DATA INFILE 'thefile.csv' INTO TABLE mytable 
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\r\n' 
(column1, column2, @var1, column4, @var2) -- specify actual field names 
SET column3 = REPLACE(@var1, ',', ''), column5 = REPLACE(@var2, ',', ''); -- remove thousand separators 
+0

非常感谢我为我工作。 – phucle