【发布时间】:2015-09-03 06:16:01
【问题描述】:
我创建了自动回复系统,用于订阅具有动态时间传导的感谢消息。
常规设置具有时间功能,例如 1 分钟后、1 天、1 周等。当客人在我的列表中订阅时,应发送基于 cron 的自动回复,并带有选定的时间条件。但是我的 sql 查询不能正常工作。我尝试了很多查询,但现在没有成功。这是我的构建;
订阅者表
ID mail add_date
1 mail1@gmail.com 2015-06-16 22:11:20
2 mail2@gmail.com 2015-06-16 22:19:30
当前时间: 2015-06-16 22:20:30
SQL 查询:
SELECT
S.*
FROM
subscribers AS S
LEFT JOIN tasks AS T ON (T.CID=2 AND S.subscriber_mail=T.subscriber_mail)
LEFT JOIN unsubscribes AS U ON (U.CID=2 AND S.subscriber_mail=U.subscriber_mail)
WHERE
(T.subscriber_mail IS NULL)
AND (U.subscriber_mail IS NULL)
AND (S.add_date > date_sub('2015-06-16 22:20:30', interval 1 MINUTE)) LIMIT 5000
发送成功,但是如果我为“1天后”创建新条件它不能正常工作,它会在第一次查询后发送相同的消息,它不会等待1天。
简而言之;
我想在订阅后、1 分钟、1 天、1 个月后发送 3 封邮件。
谢谢!
【问题讨论】:
-
考虑换个方向:用 date_add(CURRDATE(),INTERVAL 1 DAY) 等在一个表中创建 3 封邮件,然后搜索未发送的邮件
-
@v.eigler 没有理由像那样膨胀数据库
-
@cmorrissey 原因可能是有人想知道邮件是否已发送。
-
@v.eigler 如果是这种情况,只需将 3 个布尔或日期列添加到表中以标记或设置发送时间
-
@cmorrissey 好吧,我只是说“想想”。但是,如果您有更好的解决方案,请回答问题;)
标签: php mysql newsletter auto-responder