SQL所在的位置(成千上万条记录)

时间:2019-03-19 14:04:09

标签: sql where-in

我现在正在泡菜,非常感谢您的建议。 从我们的管理人员那里获得一项任务,以获取500000个电子邮件地址的列表,并在我们的数据库中检查是否在其中注册了任何一个。 问题出在用户数量上,原因 “从db..tablename中选择*,其中电子邮件(.....)” 不能与这么大的列表一起使用。 到目前为止,我唯一的想法是将列表分成较小的部分,但这似乎非常无效且耗时。 有什么方法可以使其变得更快,更聪明?

1 个答案:

答案 0 :(得分:0)

thank you for your ideas! I have just figured a solution that works without any extra manual work.

I've created a new help table with the whole 500k email list, inserted it there using the following statement (it helped me to avoid the 1000 rows limit in an ordinary insert statement):

insert INTO db..emaillist
select 'email1@gmail.com' union all
select 'email2@gmail.com' union all
..........
select 'email3@hotmail.com' 

and now I am going to use:

Select userID, email
from bd..clients 
where email in (select email from db..emaillist)

To get the list of users who exist in our DB.