我正在处理一个处理免费订阅的网站,我想现在如何在30天不活动后取消订阅,我知道这必须通过cron-jobs完成,但我不知道如何用户上次登录后计数30?
答案 0 :(得分:4)
SELECT user_id FROM users WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) > last_logged_in_date
答案 1 :(得分:2)
您需要使用mysql DATE_ADD函数
SELECT DATE_ADD('YOUR DATE', INTERVAL 30 day)
有关详细信息,请参阅mysql手册http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add。
您可以在1 UPDATE语句中执行此操作
UPDATE yourTable SET active = 0 WHERE validity_date < CURRENT_DATE
当他们订阅时,您会收到付款
UPDATE yourTable SET active = 1, validity_date = DATE_ADD(CURRENT_DATE, INTERVAL 1 MONTH) WHERE id = 'somekind of id'
答案 2 :(得分:1)
如果一个人不想使用cron并使用MySQL 5.1或更高版本,可以使用事件。 http://dev.mysql.com/doc/refman/5.1/en/create-event.html
答案 3 :(得分:0)
您可以执行一个可以帮助您的查询。实际上,MySQL文档确切地说明了你的例子。在此页面上快速搜索“30天”:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html。