当前位置: 首页 > 面试题库 >

使用LOAD DATA INFILE导入CSV报价问题

姜烨伟
2023-03-14
问题内容

我正在尝试将从excel导出的CSV文件加载到数据库中,无论尝试如何,似乎都无法正确获得格式。

这是SQL:

LOAD DATA INFILE 'path/file.csv'
INTO TABLE tbl_name 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
(column1, column2, column3);

这可以正常工作,但是当行尾(第3列)用引号引起来时,我遇到了麻烦。例如:

实际价值: These are "quotes"

CSV值: "These are ""quotes"""

发生的是,我将在数据库中的该值上获得一个额外的报价,并在该行中到达CSV中的另一个报价之前,还获得任何其他行。关于如何解决这个问题的任何想法?


问题答案:

嗯 我试图重复这个问题,但是不能。我的数据与您的数据有何不同?您可以提供样本数据来重复吗?这是我所做的:

> cat /tmp/data.csv
"aaaa","bbb ""ccc"" ddd",xxx
xxx,yyy,"zzz ""ooo"""
foo,bar,baz

mysql> CREATE TABLE t2 (a varchar(20), b varchar(20), c varchar(20));
Query OK, 0 rows affected (0.01 sec)

mysql> LOAD DATA INFILE '/tmp/data.csv' INTO TABLE t2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (a, b, c);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

mysql> select * from t2;
+------+---------------+-----------+
| a    | b             | c         |
+------+---------------+-----------+
| aaaa | bbb "ccc" ddd | xxx       |
| xxx  | yyy           | zzz "ooo" |
| foo  | bar           | baz       |
+------+---------------+-----------+
3 rows in set (0.00 sec)

对我看来还行(?)

另请注意,如果您在Windows平台上工作,则可能需要使用它
LINES TERMINATED BY '\r\n'



 类似资料:
  • 我有一个CSV文件,我想在我的弹性搜索中导入它。 我用的是Windows 10,我也有一个Kibana,可以在导入后浏览数据。我使用Logstash来尝试导入。 我的所有服务(Kibana、es和Logstash)都在我的本地主机上运行。 我尝试使用以下Logstash配置文件(我的csv文件在正确的路径中): 如您所见,我试图使用“csv”或“grok”过滤器。 然后,我在详细模式下使用以下配置

  • 问题内容: 当前,我需要将一个大型CSV文件推送到mongo数据库中,值的顺序需要确定数据库条目的键: CSV文件示例: 将其解析为数组的代码: 代码输出: 如何将数组插入我的Mongoose模式中以进入mongo db? 架构: 数组的顺序需要与架构的顺序匹配,例如在数组中,第一个数字9始终需要保存,因为它们键为“ serverid”,依此类推。我正在使用Node.JS 问题答案: 您可以通过从

  • 问题内容: 尝试从CSV导入数据时遇到了一些问题,但还有一些问题,我还没有解决。 首先,这是我的代码,可以帮助您更好地了解事物(将其整理一些,删除CSS和DB连接): 从本质上讲,这是我对各种方法进行多次尝试后发现的示例的改编。 我的CSV有两列数据,第一列是文本,第二列是整数数据库中的表也有两列,第一列称为“文本”,第二列为“数字” 所以我的问题是: 正在上传的文本只是在每个字段中显示为0,我不

  • 我在csv原始数据文件中遇到EM Dash问题,导致熊猫无法读取csv。 我在下面运行了一些变体 收到错误:“UnicodeDecodeError:“ascii”编解码器无法解码位置4:序号不在范围(128)中的字节0xef” 其他变化包括 收到错误:“UnicodeDecodeError:'utf8'编解码器无法解码位置0中的字节0xff:无效的开始字节” 收到错误:“行包含空字节” 如果成功,

  • 当我导入包含一些国家/地区的CSV文件时,我遇到了一些字符的问题。它没有很好的编码然后我得到了?标记,而不是CSV文件中写入的字符。这里有一些国家让我面临这个问题:奥兰群岛、圣巴特勒米、科特迪瓦、库拉索岛。 下面是导入csv文件的代码: 首先我使用了FileReader,所有这些国家都出现了问题,然后我改为InputStreamReader并添加了这个UTF-8字符集,问题几乎解决了。当我使用字符