【问题标题】:Loading csv with quotes into MySQL将带引号的csv加载到MySQL中
【发布时间】:2017-07-11 03:06:39
【问题描述】:

我有一个 csv 文件,其中一些字段包含在双引号中,因为它们中包含逗号。样本数据:

ID, NAME, ADDRESS  
1, Tom Jones, "Home, 123 Ave, TX"
2, John Thomas, "Office, 321 St TX"

我尝试按照here 的步骤操作,使用OPTIONALLY ENCLOSED BY '"' 将数据加载到我的数据库,但我不断收到

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTIONALLY ENCLOSED BY '"'' at line 1

我的加载命令如下:

LOAD DATA INFILE
'C:\Users\Craig\Downloads\de1\Data\contacts.csv'
INTO TABLE TEST1.contacts
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
;

我在这里做错了什么?

【问题讨论】:

  • 这看起来不错,那么您的 SQL 查询中是否可能存在一些像不可见字符这样的问题?
  • 嗯,由于某种原因,当我在一行中发出命令时,它就像魔术一样工作。嗯。
  • 这可能是一个隐形字符。如果您从一个程序复制粘贴到另一个程序,这些可能会不时出现。

标签: mysql csv


【解决方案1】:

我在 Navicat 和 cmd.exe 中都试过你的 SQL。我在 cmd.exe 上遇到了与您相同的错误,但在 navicat 上运行良好。关键是 SQL 文件路径上的符号“”。您应该用斜杠替换反斜杠。 就像这样:

LOAD DATA INFILE
'C:/Users/Craig/Downloads/de1/Data/contacts.csv'
INTO TABLE TEST1.contacts
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
;

【讨论】:

    猜你喜欢
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 2016-05-16
    • 1970-01-01
    • 2019-03-27
    • 2013-07-21
    相关资源
    最近更新 更多