我一直想知道一件事。是否可以查询数据库以便"其中"子句条件在csv文件中给出?
就像我们说我有数据库并在那里(名称some_table)这样:
id company_id created_at
0001c73d 12345 2016-1-1
rewrewrf 45678 2016-2-1
0001c73d 57986 2016-3-1
vcxcv34d 21346 2016-4-1
23215fsf 47896 2016-6-1
我的some.csv看起来像这样:
error_id;company_id
32rgfvx4;12345
fds44322;45678
fdsf46hh;57986
989jh2f4;21346
f43452fg;47896
所以查询可能是这样的:
select company_id, created_at
from some_table
where company_id IN ('some.csv:column2')
明白了吗?
这可以用python完成,或者直接用一些SQL程序(插件/脚本......)或其他东西吗?有任何想法吗?
答案 0 :(得分:0)
LOAD DATA的SQL解决方案:
创建与CSV数据匹配的临时表:
CREATE TEMPORARY TABLE tmp_errors (
error_id VARCHAR(50) NULL DEFAULT NULL,
company_id VARCHAR(50) NULL DEFAULT NULL,
INDEX company_id (company_id)
);
将数据加载到临时表中:
LOAD DATA INFILE '/full/path/to/csv/errors.csv'
INTO TABLE tmp_errors
FIELDS TERMINATED BY ';'
IGNORE 1 LINES;
使用临时表过滤您的选择:
select company_id, created_at
from some_table
where company_id IN (select company_id from tmp_errors);
或者
select t.company_id, t.created_at, e.error_id
from some_table t
join tmp_errors e using(company_id);