【问题标题】:MySQL loads CSV file but without double quotes?MySQL加载CSV文件但没有双引号?
【发布时间】:2019-03-27 05:41:33
【问题描述】:

我正在使用 MySQL 加载一个 CSV 文件,但是字符串列没有引号,所以我只获取值的第一个字母。

1,Toyota Park,Bridgeview,IL,0
2,Columbus Crew Stadium,Columbus,OH,0
3,RFK Stadium,Washington,DC,0

使用这里的代码后,我得到了这个:

LOAD DATA LOCAL INFILE 'C:\\Users\\tank\\Desktop\\test.csv'
INTO TABLE test
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n'
IGNORE 0 ROWS;

我有这张桌子:

+---------------------------------------------+
| ID, Studios, City, State, Open              |
+---------------------------------------------+
| '1', 'T', 'B', 'I', '0'                     |
| '2', 'C', 'C', 'O', '0'                     |
| '3', 'R', 'W', 'D', '0'                     |
+---------------------------------------------+

【问题讨论】:

  • 现在是时候返回您的数据源并进行正确的导出了。如果列值中有空格,则应使用双引号(或其他分隔符)转义这些列。

标签: mysql csv load quotes


【解决方案1】:

你应该使用:

LOAD DATA LOCAL INFILE 'C:\\Users\\tank\\Desktop\\test.csv'
INTO TABLE test
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n'
ENCLOSED BY '\"'
ESCAPED BY '\"'
IGNORE 0 ROWS;

【讨论】:

  • 感谢您的回答,我找到了原因,当我创建表格时,我使用了语法char 而不是varchar(20),所以它被截断只保留第一个字母。当 csv 文件中没有引号时,Mysql 会自动将它们用逗号括起来。
猜你喜欢
  • 2014-04-22
  • 1970-01-01
  • 2016-03-04
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 2016-12-28
  • 1970-01-01
  • 2016-07-29
相关资源
最近更新 更多