群发电子邮件ID重复检查

时间:2015-06-04 09:32:05

标签: php mysql codeigniter email csv

我有一个表(email_list),其中包含以下列

id INT(自动增量),电子邮件var char,状态TINY-INT

用户的表单只有一个字段,可以上传csv csv只包含一个包含电子邮件ID的列

csv包含 min 100 max 500 电子邮件ID。

当用户点击上传按钮

1)我想查看csv中存在的电子邮件已存在于email_list表中

2)检查电子邮件在csv本身是否重复

如果没有找到重复项那么我可以在表格中插入所有电子邮件ID

如果找到重复项我想显示包含电子邮件列表的错误消息 这些都存在于email_list表中 如果任何电子邮件在csv中自行复制。

我正在使用代码点火器和mysql

我怎么能做到这一点?

如果email_list表包含5000多行并且上传csv包含500个电子邮件ID

,该怎么办?
  • INSERT IGNORE不适用(如果没有找到重复项,那么我只能在表格中插入所有电子邮件ID)

比较操作需要花费很多时间

请帮助我!!

1 个答案:

答案 0 :(得分:0)

首先检查数据库中的ID:

SELECT email
FROM email_list
WHERE id IN (1,2,3,4,5,6)

您可以在查询之前填充ID列表。

$user_ids = array();
foreach($users as $user) {
    $user_ids[] = $user->id;
}

// Do query here

if(count($res) > 0) {
    foreach($res as $row) {
        echo "Duplicate email: {$row->email}";
    }
} else {
    // Do insert
}