我的应用程序中有一个表,用于存储用户详细信息。在这些字段中,用户保存他们的警报设置。 IE。我们将提醒用户保存的日期。
我的 table 看起来像
id | Username | name | alert_date | repeat_on
--------------------------------------------------------------------------------
12 | user_name | name | 2013-08-12 00:00:00 | 30
15 | user_nam2 | name | 2013-05-12 00:00:00 | 45
--------------------------------------------------------------------------------
通过 cronjob,我们向用户发送提醒电子邮件和短信。喜欢
select * from users where date(alert_date)=CURRENT_DATE
它工作正常,但可以选择根据“repeat_on”天数重复警报。就像我们必须从alert_date开始每隔“30”天(或其他)重复一次警报。我被这个查询困在这里了。
这是执行相同操作的正确表结构吗?
最佳答案
尝试:
SELECT * FROM users
WHERE alert_date <= CURRENT_DATE AND DATE_ADD(alert_date, INTERVAL repeat_on DAY) >= CURRENT_DATE
关于mysql - 按日期重复查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962757/