对数据库条件的简单查询来自cs

2024-10-01 19:19:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在想一件事。是否可以查询数据库,以便在csv文件中给出“where”子句条件?你知道吗

例如,假设我有一个数据库和一个表(命名一些表),如下所示:

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

还有我的一些.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程序(addon/script..)或者别的什么来完成吗?有什么想法吗?你知道吗


Tags: 文件csvid数据库somewhere条件命名
1条回答
网友
1楼 · 发布于 2024-10-01 19:19:11

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);

相关问题 更多 >

    热门问题