对于罗嗦的标题感到抱歉。我正在运行以下查询:
LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE tablename
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY ',\r\n'
我有一个包含以下格式数据的CSV:
1111, 2222, "32", "1,234.304", 1023.53,
所有行都以额外的逗号结束。
尝试加载时,尝试将“1,234.304”类型字段放入NUMERIC(12,4)列时出错。我最终得到1.0000并警告数据被截断。我原以为1234.304。
编辑:似乎对具有逗号千位分隔符的值进行常规插入会扰乱MySQL。有没有办法修改所需行为的加载命令?
答案 0 :(得分:0)
将问题分解为两个步骤:
如果将所有数据都放入包含VARCHAR
字段的表中,您可以轻松地操作它并将值显式转换为您希望它们输入的类型,而不是依赖于{{{{ 1}}。