如何从帐户表中检查和提取多封电子邮件的数据?
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
【讨论】:
以上是关于如何从帐户表中检查和提取多封电子邮件的数据?的主要内容,如果未能解决你的问题,请参考以下文章