我使用以下sql使用mysql的“加载数据”导入数据。 description字段包含半冒号,因此半冒号后面的内容不插入
LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE `mytable` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n'
实际数据如下:
1;2;3;D;Testdata: Testing; 100% Perfect
但它只插入
1;2;3;D;Testdata: Testing;
我的表结构
CREATE TABLE `mytable` (
`id` text NOT NULL,
`category` varchar(12) NOT NULL,
`product` varchar(12) NOT NULL,
`language` text NOT NULL,
`description` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我应该更改什么才能获得完整数据?
答案 0 :(得分:3)
我不知道以下是否可行,但......
选项1 - 使用不同的分隔符
您可以将字段分隔符从分号更改为波浪号(〜)。所以你会有:
数据:
1~2~3~D~Testdata: Testing; 100% Perfect
命令:
LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY '~' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';
选项2 - 附上
或者您可以将包含带分号的分号的任何数据括起来:
数据
1;2;3;D;"Testdata: Testing; 100% Perfect"
并使用原始命令:
LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';
选项3 - 退出
或者解决问题分号:
1;2;3;D;Testdata: Testing\; 100% Perfect
并使用原始命令:
LOAD DATA LOCAL INFILE '/tmp/phpz4m7Rl' INTO TABLE mytable FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';
祝你好运!