使用Yii中的updateAll方法通过某个数字更新字段值

时间:2013-07-16 15:22:55

标签: php mysql yii

我是Yii框架的初学者。我有一个我需要这样做的情况

我在数据库中有一个列rgt,我想在某些条件下将其递增2。

我写得像这样

Category::model()->updateAll( array("rgt"=>"rgt+2"),array("condition"=>"rgt >".$this->myRight));

这不起作用。我不确定我写的是对的。请帮帮我

提前致谢

1 个答案:

答案 0 :(得分:2)

您无法将rgt+2等数据库表达式传递给updateAll()。它会尝试将其设置为列值,并且可能会失败,因为列的类型为INT。但您可以改为使用updateCounters()

Category::model()->updateCounters(array(
    'rgt' => 2,
), 'rgt > '.$this->myRight);