我正在尝试使用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.
| 归档时间: |
|
| 查看次数: |
23476 次 |
| 最近记录: |