MySQL LOAD DATA LOCAL INFILE 当第一行被 "包围时什么都不做

标签 mysql csv

下面的 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/

相关文章:

java - 从 ArrayList<String> 矩阵创建制表符分隔的 .txt 表

mysql - 循环中的事件处理程序似乎使其下面编写的每个代码都无效

php - 如何从mysql中的多个表中按日期顺序获取数据?

PHP 警告 : PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/msqli.so'

Python从gzip压缩文件中读取csv行

python - 使用 python 计算 excel 中的重复行,我收到错误 TypeError : a bytes-like object is required, not 'str'

PHP关于单实例连接mysql

MySQL 查询 : Filtering search results by tags

sql - 值列表如表

php - 输出到 CSV 生成错误