我有一个包含这种格式数据的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),但没有运气。任何帮助都非常感谢。非常感谢。
答案 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