我正在尝试将此 CSV 文件导入 MySQL,该文件似乎可选地由多个字符括起来。不幸的是,MySQL 只支持一个字符作为字段分隔符。
我被困在 SQL 中完成整个过程,因为它是更大程序的一部分 - 所以脚本是不可能的。
数据示例:
reportdata, commission, total, chargeback, company
",123,""$116.00 "",""$604.00 "",""($88.00)"", foo
Run Code Online (Sandbox Code Playgroud)
除了尝试在临时表上执行一堆字符串操作之外,我感到很困惑。
有任何想法吗?
由于不允许您编写脚本,但只能使用 SQL,请尝试以下操作:
CREATE TABLE importweirddata( txt varchar(255) ) ENGINE=MyISAM;
LOAD DATA LOCAL INFILE 'whatever_importfile.txt'
INTO TABLE importweirddata
LINES TERMINATED BY '\r\n';
UPDATE importweirddata SET txt = REPLACE(txt,'\"\"','\"');
SELECT * FROM importweirddata INTO 'improved_importfile.txt';
DROP TABLE importweirddata;
Run Code Online (Sandbox Code Playgroud)
这就是另一个文本文件,其中双引号已被删除。
如果您希望将所有双引号替换为单引号,请执行以下更新:
CREATE TABLE importweirddata( txt varchar(255) ) ENGINE=MyISAM;
LOAD DATA LOCAL INFILE 'whatever_importfile.txt'
INTO TABLE importweirddata
LINES TERMINATED BY '\r\n';
UPDATE importweirddata SET txt = REPLACE(txt,'\"\"','\'');
SELECT * FROM importweirddata INTO 'improved_importfile.txt';
DROP TABLE importweirddata;
Run Code Online (Sandbox Code Playgroud)
现在,导入该文件 (improved_importfile.txt) 并享受它的乐趣。
试一试 !!!
| 归档时间: |
|
| 查看次数: |
3141 次 |
| 最近记录: |