如何从帐户表中检查和提取多封电子邮件的数据?

Posted

技术标签:

【中文标题】如何从帐户表中检查和提取多封电子邮件的数据?【英文标题】:How to check and pull data of multiple emails from an account table? 【发布时间】:2021-11-29 08:36:56 【问题描述】:

我需要检查大约 1,000 封电子邮件,例如 ['a@a.com', 'b@b.com', ..., 'zz@zz.com']。如果帐户表中存在电子邮件,我需要在帐户表中提取与电子邮件匹配的行的名字和姓氏。

帐户表如下所示:

CREATE TABLE account (
   id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
   email VARCHAR(255) NOT NULL,
   first_name VARCHAR(255),
   last_name VARCHAR(255)
);

在不循环数组的情况下实现此目的的最佳方法是什么?

【问题讨论】:

这能回答你的问题吗? Passing an array to a query using a WHERE clause 【参考方案1】:

首先,使用IN() 语法提取与电子邮件匹配的所有值。

其次,GROUP 通过电子邮件删除重复值。

第三,通过聚合MIN()只获取最小值(第一个)。

第四,自我JOIN 过滤id

SELECT * FROM account t1
JOIN (
    SELECT MIN(id) FROM account
    WHERE email IN ('a@a.com', 'b@b.com', ...)
    GROUP BY email
) t2 ON t2.id = t1.id

【讨论】:

以上是关于如何从帐户表中检查和提取多封电子邮件的数据?的主要内容,如果未能解决你的问题,请参考以下文章

从 django 中的自定义数据库表中检查电子邮件和密码

如何在 laravel 中配置多封电子邮件 [关闭]

如何增加SMTP限制?

如何从zapier中的电子邮件中提取字符串?

从 Outlook 电子邮件中提取嵌入的图像

Outlook - 查找邮件发送到的帐户的电子邮件