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