gpt4 book ai didi

MySql:将CSV数据上传到临时表然后加入

转载 作者:行者123 更新时间:2023-11-29 17:15:58 25 4
gpt4 key购买 nike

我在 Mysql 查询中遇到了一个非常奇怪的问题。我不确定我这样做是否正确。我尝试在网络上抓取合法的解决方案,但找不到任何东西。

我有1张 table ,请说如下:

餐 table 美食

ID | Col1 | Col2
-------------------------
1 | abc | ABC1234567675
2 | def | ABC3435345345
  • ID 类型为 Int
  • Col1 是 Varchar(50)
  • Col2 是 varchar(200) 类型的字母数字字符串

我有一个只有 1 列的 CSV 文件,其值与上面 Foo 表的 Col2 相同。

我正在将 CSV 加载到临时表中,假设使用如下查询的 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 个结果。过去有其他人也遇到过类似的问题吗?你能指导我看看我做错了什么吗?

如有任何帮助,我们将不胜感激。

最佳答案

最后,经过大量谷歌搜索后,我发现我的“LOAD DATA”命令不完整。我的 Bar 表数据中有回车符和换行符。所以我必须在“加载数据”命令中添加以下几行:

FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';

然后效果很好。

关于MySql:将CSV数据上传到临时表然后加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51627832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com