MySQL LOAD DATA INFILE查询运行成功,但没有输出

时间:2015-01-26 11:42:37

标签: mysql csv

我正在运行一个SQL语句来读取一个CSV文件(在这种情况下只有一个带有标题的列)并将其导入我的数据库,在那里通过后续的SQL语句对数据进行进一步的操作。

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

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

我在尝试解决问题方面做了大量工作。这是我当前的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

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

我无法理解为什么它不会影响任何行,因为我的CSV文件可供所有人阅读,并且格式正确(在Excel中创建并保存为cvs格式)。

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

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

1 个答案:

答案 0 :(得分:0)

是的,所以我发现Mac使用不同的Line Endings到Unix&视窗。我在Sublime Text 3中打开了CSV,发现可以在视图选项中更改行结尾。

我将其设置为Unix,保存文件和\ n的终止符。不幸的是,Sublime文本没有将行结尾显示为可见字符,所以这纯粹是偶然的。

我希望这可以帮助遇到此问题的其他任何人,确保CSV的行结尾与您在LOAD DATA查询中指定的行结尾相匹配。