0

我有一个包含这种格式数据的 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

该列的数据类型为 Decimal(10,2)。我也试过 Numeric(10,2) 但没有运气。非常感谢任何帮助。提前非常感谢。

4

2 回答 2

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, ',', '');
于 2013-08-06T07:53:37.263 回答
0

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

如果您在查询时需要以这种方式格式化的数字,请使用 FORMAT()。有关示例,请参阅将逗号应用于 MySQL 中的数字字段

于 2013-08-06T06:01:36.943 回答