使用cron job在mysql中更新并选择一个查询

时间:2016-07-30 15:42:18

标签: php mysql cron

如果到期日期与当前日期相距30天,则使用cron job尝试将30dexpf字段更新为1。否则30dexpf应该有0但没有成功。

$query="UPDATE user_pages SET 30dexpf=1 WHERE expiry > CURRENT_DATE - INTERVAL 30 DAY";

我也试过这个但没有成功

$query="update user_pages 30dexpf = 
(case when expiry > CURRENT_DATE - INTERVAL 30 DAY then 1 else 0 end)";

这是我的数据库结构

| user_id |  30dexpf  |        expiry        |

|    7    |    0      |  2016-08-30 11:27:56 | 

2 个答案:

答案 0 :(得分:1)

我猜您要将30dexpf字段更新为1,如果到期日期距离当前日期正好30天。否则,30dexpf应该有0

UPDATE user_pages
SET `30dexpf` = CASE
                WHEN (
                    DATE(expiry) = CURDATE() + INTERVAL 30 DAY
                ) THEN 1 ELSE   0 END;

答案 1 :(得分:0)

你需要"<" (少于) 到期(A)需要小于当前日期(B)到期吗?

但我想添加更多提示

updateselect查询使用相同的where子句 - 您可以查询结果集并查看它是否正确然后复制完整的where子句update语句< / p>

(我无法评论jurgen d的答案,所以我在此发帖)