MySQL LOAD DATA INFILE 查询 运行 成功但无输出

MySQL LOAD DATA INFILE Query running successfully but no output

我正在 运行ning 一条 SQL 语句以读取 CSV 文件(在本例中只有 1 列带标题)并将其导入我的数据库,在那里进一步处理数据将通过后续 SQL 语句发生。

但是,我似乎无法直接在 MySQL Workbench 和我的 PHP 本地网站以及另一个 [=43] 中将 CSV 文件加载到我的数据库中=] 在我的网络中通过 PHP 网站。

有趣的是查询似乎 运行 成功,因为我在任何平台或计算机上都没有错误,但没有行受到影响。

为了解决这个问题,我做了很多挖掘工作。这是我当前的 SQL 代码,然后我将讨论我尝试过的内容。

LOAD DATA INFILE '/Users/Josh/Desktop/testcsv.csv'
INTO TABLE joinTest
FIELDS
    TERMINATED BY ','
    ENCLOSED BY '"'
LINES
    TERMINATED BY '\r\n'
IGNORE 1 LINES
(interestName);

所以这是我在 MySQL Workbench 中尝试的。在 PHP 中,我有一个上传器和存储 tmp 文件位置的变量。这与回显一样有效,一切看起来都很好。

我试过运行将其设置为

LOAD DATA INFILE

但它仍然不影响任何行(运行s 成功)。我还将 LINES 中的 TERMINATED BY 更改为仅 \n 但仍然不会影响任何行。

我不明白为什么它不影响任何行,因为我的 CSV 文件是所有人都可读的并且格式应该正确(在 Excel 中创建并保存为 cvs 格式)。

有谁知道潜在的问题是什么?

如果需要更多信息,我会尽快回复。谢谢。

是的,所以我发现 Mac 使用与 Unix 和 Windows 不同的行尾。我在 Sublime Text 3 中打开 CSV,发现在视图选项中有一个选项可以更改行尾。

我将其设置为 Unix,保存了文件,\n 的终止符起作用了。不幸的是,Sublime text 不会将行尾显示为可见字符,所以这纯属偶然。

我希望这对遇到此问题的其他人有所帮助,请确保 CSV 的行尾与您在 LOAD DATA 查询中指定的行尾匹配。