我有一个大约10个销售代表的表格,每次都会发送一封包含潜在客户的新电子邮件,每次将新的潜在客户添加到数据库中。
---------------------------------------------
id | name | email | active
---------------------------------------------
1 | bill | bill@billspills.com | y
2 | bob | bob@bobsjobs.com | n
3 | sue | sue@suesshoes.com | y
4 | betty | jan@jansvans.com | y
我希望系统能够以循环方式向销售代表发送电子邮件。到达表的末尾后,它再次从头开始。我只想通过电子邮件发送给那些活跃的'标志设置为' y'。销售代表可以通过将标志设置为' n'来选择退出。所以,上面会发电子邮件:
bill,sue,jan,bill,sue,jan等。我需要保持这种状态,因为潜在客户可能会在数分钟或数小时内出现,所以我需要一种方法来记住上次发送电子邮件的代表,以确定谁应该收到下一封电子邮件。
我考虑使用第五栏,“电子邮件最后”,然后查询最后通过电子邮件发送的人,并选择下一个ID。我不确定我是如何重新回到起点的,也许是通过计算记录来确定表格中的最后一个记录。
我问,只是为了看看我是否错过了一个更简单,更简洁的方法。我正在使用PHP。
更新
解决方案:(使用Laravel / Eloquent)
public function touch(){
$rep = Rep::where('active','=','y')->orderby('updated_at', 'asc')->first();
$rep->touch();
echo $rep->name;
}
使用SQL等效:
select * from `reps` where `active` = 'y' order by `updated_at` asc limit 1
update `reps` set `updated_at` = '2015-01-28 03:52:32' where `id` = '2'
答案 0 :(得分:3)
添加emailedLast
列(时间戳),当您将潜在客户通过电子邮件发送给代表时,请将其设置为当前时间戳(now()
)
然后,您查询下一个电子邮件回复的查询将是:
select * from reps where active = 'y' order by date asc limit 1;