我有两个这样的查询,
$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语句?
发布于 2011-12-31 12:57:21
您不需要在两个查询中执行此操作。看起来你在表格中的每个激励值上加了100;如果这让你超过了maxMotivation,那么就使用那个值。这可以在没有WHERE子句的情况下一次完成。
$q = $dbc -> prepare("UPDATE accounts SET motivation = LEAST(motivation+100, maxMotivation)");
$q -> execute();https://stackoverflow.com/questions/8686303
复制相似问题