MySQL"LOAD DATA INFILE"和Missing Double Quotes

swt*_*t83 24 mysql csv

我正在尝试使用LOAD DATA INFILE技术将CSV加载到MySQL中.它工作正常,但我有一个问题,其中一些列使用双引号,而有些列不使用.

例:

something,123,something,"Bauer, Jack",123,something
Run Code Online (Sandbox Code Playgroud)

发生的事情是引号内的逗号会破坏导入,因此我的数据最终都会被填满.不知道如何让导入转义双引号内的逗号.

mysql --user=<USER> --password=<PASS> -e "LOAD DATA INFILE '<FILENAME>' INTO TABLE <TABLENAME> FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (col1, col2, col3, ...)" <DATABASE>
Run Code Online (Sandbox Code Playgroud)

And*_*ger 48

您需要使用附加选项执行语句LOAD DATA INFILE

FIELDS OPTIONALLY ENCLOSED BY '"'
Run Code Online (Sandbox Code Playgroud)

这样整个陈述就变成了

    LOAD DATA INFILE '<FILENAME>' INTO TABLE <TABLENAME>
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(col1, col2, col3, ...)
Run Code Online (Sandbox Code Playgroud)

如需进一步阅读,请参阅优秀的MySQL参考手册,例如MySQL 5.1 GA.

  • 对您的答案非常有帮助+1 (2认同)
  • 非常有帮助,谢谢。我有“ FIELDS OPTIONALLY ENCLOSED BY'''”`,并且重复执行“ FIELDS”会导致错误。MySQL不能原谅。 (2认同)