如何从一个帐户表中查看和提取多个邮件的数据?

  • 本文关键字:提取 数据 一个 mysql arrays
  • 更新时间 :
  • 英文 :


我有大约1000封像['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)
);

在不遍历数组的情况下实现这一点的最佳方法是什么?

首先,使用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

最新更新