我创建了自动回复系统,用于订阅带有动态时间管道的感谢信息。
常规设置具有时间功能,例如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 天。
简而言之;
我想在订阅后发送 3 封邮件,1 分钟、1 天、1 个月后。
谢谢!
也许这可以解决你的问题:
SELECT * FROM
subscribers
WHERE
add_date >= DATE_SUB(CURDATE(),INTERVAL 1 DAY)
如果您使用 NOW(),您将始终在查询中拥有您不需要的分钟/秒(如果您的差值是>= 一天)。