下面的 MySql 查询什么都不做
LOAD DATA
LOCAL INFILE 'path/to/file.csv'
REPLACE INTO
TABLE `db`.`table`
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(
`id`,
`name`
);
CSV文件如下:
"id","name"
"1","Lorem"
"2","Ipsum"
"3","Dolor"
"4","Sit"
"5","Amet"
"6","consectetur "
"7","adipisci"
"8","velit"
"9","sed"
"10","quia"
我检查了换行符是LF,文件编码是UTF-8。
我注意到,如果我清空 csv 的第一行,或删除第一行的双引号,查询实际上会影响 10 行。
你知道为什么会这样吗?因为我宁愿不必编辑第一行。
最佳答案
问题出在您的 Escaped By '"'
上,当第一个 quote(") 遇到时,它被视为 Escape
。摆脱它,它会起作用。
LOAD DATA
LOCAL INFILE 'path\\to\\file.csv'
REPLACE INTO
TABLE `db`.`table`
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(
`id`,
`name`
);
关于MySQL LOAD DATA LOCAL INFILE 当第一行被 "包围时什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50757364/