无法从CSV文件中正确导入价格列

时间:2013-08-06 05:27:42

标签: mysql

我有一个包含这种格式数据的csv文件:

SATURN,6459,"50,486",27184

我正在使用此命令将此文件导入表格中:

 LOAD DATA LOCAL INFILE 'D:\\temp.csv' INTO TABLE `test`.`tmp` FIELDS ESCAPED BY '\\'
 TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'   
 (`description`,`file_no`,`net`,`run_no`);

正确导入所有字段,但 net 列始终具有

等数据
 50.00 // it should be 50,486

此列的数据类型为十进制(10,2)。我也试过Numeric(10,2),但没有运气。任何帮助都非常感谢。非常感谢。

2 个答案:

答案 0 :(得分:1)

请试试这个:

LOAD DATA LOCAL INFILE 'D:\\temp.csv' INTO TABLE `test`.`tmp` FIELDS ESCAPED BY '\\'
TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'   
(`description`, `file_no`, @a_variable, `run_no`)
SET `net` = REPLACE(@a_variable, ',', '');

答案 1 :(得分:0)

MySQL在插入数字时无法将逗号作为1000个分隔符处理。你需要在加载之前解析这些逗号。

如果在查询时需要以这种方式格式化的数字,请使用FORMAT()。有关示例,请参阅Apply comma to number field in MySQL