【问题标题】:MySQL is adding characters to my dataMySQL 正在向我的数据中添加字符
【发布时间】:2024-01-18 17:23:01
【问题描述】:

我在 MySQL 中有一个表,我正在从 csv 文件向它添加数据

我的代码是:

LOAD DATA LOCAL INFILE 'C:/myaddress/file.csv'
INTO TABLE db.mytable
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(`Currency`,`field2`,`field3`)

除了我添加的第一行之外,这加载正常。

我正在添加一个USD,但是当我进行查询时,它会将其导入为USD。 这只发生在第一行。有人知道为什么会这样吗?

解决方案: 这是一个编码问题,所以要解决它,这里有两个选项

1.- 对文件进行不同的编码

2.- 添加一个虚拟行并使用IGNORE 1 LINES

【问题讨论】:

  • 在 'field3.您的 sql 脚本中是否也缺少它?也许它会超出您的第一行数据。
  • 好的。你更新了。 LOAD DATA INFILE '/blah/blah/file.csv' INTO TABLE test IGNORE 1 LINES; .... 将其保存在您的武器库中。是第一行column info(我相信你会说不)。不看你的 csv 就很难判断
  • 我的文件中没有标题。我添加了一个标题行并使用了忽略。我现在真的工作了。诡异的。谢谢
  • 是的,我说是的,所以我的字数是允许的

标签: mysql csv load


【解决方案1】:

我认为这与您的 csv 相关。它已使用 ISO-8859-1(西班牙语?)中的 UTF-8 BOM 编码。

如果您使用 Notepad++ 之类的编辑器,请打开 csv 并从顶部菜单中选择 -> Encoding -> utf-8 without DOM ,保存并重试。

【讨论】:

  • 使用上面的 cmets 提问
最近更新 更多