我在使用Mysql查询时遇到一个非常奇怪的问题。我不确定我是否做对了。我曾尝试在网上搜寻合法的解决方案,但找不到任何东西。
我有1张桌子,说些什么:
桌舞
ID | Col1 | Col2
-------------------------
1 | abc | ABC1234567675
2 | def | ABC3435345345
我有一个只有1列的CSV文件,其值与上面Foo表的Col2相同。
我正在将CSV加载到Temporary表中,假设使用以下查询查询Bar:
drop temporary table Bar;
CREATE TEMPORARY TABLE Bar (
Col2 varchar(200)
);
LOAD DATA LOCAL INFILE 'C:/update.csv'
INTO table Bar;
当我在“温度表”栏上选择“ *”时。它列出了已从CSV上传到临时表的所有值。
但是当我尝试在Col2上加入它时。它仅返回1个结果。
当我使用来自表栏的Col2值使用where子句手动查询表Foo时。它显示表Foo中存在许多记录。
我已经尝试过以下查询:
select * from Foo inner join Bar on Foo.Col2=Bar.Col2;
select * from Foo join (select Col2 from Bar) b on Foo.Col2=b.Col2;
select * from Foo where Col2 in (select Col2 from Bar);
但是所有三个仅返回1个结果。 过去有没有其他人也遇到过类似的问题? 你能指导我做错什么吗?
任何帮助将不胜感激。
答案 0 :(得分:0)
最后,经过大量的搜索之后,我发现我的“ LOAD DATA”命令未完成。我在Bar表数据中有回车符和换行符。因此,我必须在“加载数据”命令中添加以下行:
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';
然后工作正常。