MySQL从CSV加载数据(字段可选地用引号括起来,数字有逗号千位分隔符)

时间:2015-05-01 03:59:27

标签: mysql csv

对于罗嗦的标题感到抱歉。我正在运行以下查询:

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。有没有办法修改所需行为的加载命令?

1 个答案:

答案 0 :(得分:0)

将问题分解为两个步骤:

  1. 将数据存入数据库
  2. 将数据输入您想要的表格/格式
  3. 如果将所有数据都放入包含VARCHAR字段的表中,您可以轻松地操作它并将值显式转换为您希望它们输入的类型,而不是依赖于{{{{ 1}}。