MySQL加载文件错误加载不正确的数据

时间:2018-11-08 14:17:38

标签: mysql mariadb

嗨,我有一个csv数据集,例如

ukwn,34,2018-10-01,“ 757,271”

ukwn,3,2018-10-01,“ 7,342”

“嗨”,23,2018-10-01,“ 3,483,887”

我想将其插入数据库中,所以我编写了代码:

将数据本地INFILE'data.csv'装入表app_spend_metric 以','结尾的字段 可选用“”包围 '\ n'终止的行 忽略1行 (col1,col2,col3,col4)

但是我无法插入col4(第4行),因为在“”(例如“ 7,345”)中有“,”

然后我尝试过

将数据本地INFILE'data.csv'装入表app_spend_metric 以','结尾的字段 '\ n'终止的行 忽略1行 (col1,col2,col3,col4)

但是这一次它像“ 7,344”中一样输入col4中的部分数据,仅输入“ 7

1 个答案:

答案 0 :(得分:0)

如果col4是数字(例如INT),则问题如下:

  1. 解析该行以获取字符串"7,344"
  2. 剥离封闭的"7,344
  3. 将字符串存储到INT列中。这需要将该字符串转换为数字。
  4. 转换在第一个非数字字符(即逗号)处停止。
  5. 结果:将col4设置为7,并且将,344扔掉。

MySQL不能用数字处理“千位分隔符”。但是你可以剥掉它们:

LOAD ...
    (col1, col2, col3, @num)
    SET col4 = REPLACE(@num, ',', '')