一个cron中有两个mysql查询,一个必须同时执行不是两个?

时间:2011-12-31 04:36:26

标签: mysql if-statement cron

我有两个问题,

$q = $dbc -> prepare("UPDATE accounts SET motivation = motivation+100 WHERE motivation <= maxMotivation-100");
$q -> execute();

$q = $dbc -> prepare("UPDATE accounts SET motivation = maxMotivation WHERE motivation > maxMotivation-100");
$q -> execute();

它基本上确保一个数字不能超过允许的最大数量。但问题是它进入了一个cronjob,所以我怎么能在一个声明中做到这一点?如果第一个失败则执行第二个或如果第一个成功跳过第二个。有没有办法使用mysql if语句?

1 个答案:

答案 0 :(得分:1)

您不需要在两个查询中执行此操作。看起来你正在为表中的每个动机值添加100;如果它让你超过maxMotivation,那么使用该值。这可以在没有WHERE子句的情况下一次完成。

$q = $dbc -> prepare("UPDATE accounts SET motivation = LEAST(motivation+100, maxMotivation)");
$q -> execute();