CakePHP遍历数据库中的所有行并更新?

时间:2011-10-19 04:53:28

标签: database cakephp

我不确定cakephp这样做的方法。我的模型如下(简化)

Model
id      column1    column2    column3     sum
1232       3           5          2
5474       5           10         4

现在,由于程序的性质,我需要遍历数据库,将每个列值乘以一个乘数,然后对这些值求和,然后将该值放入每个记录的总和中。所以,例如,如果我有一个变量$ multiplier = 2,那么我希望第一行发生这种情况:

(3*$multiplier) + (5*$multiplier) + (2*$multiplier) = 20


Model
id      column1      column2   column3     sum
1232       3           5          2         20
5474       5           10         4         38

当然,这是非常简化的,但它代表了我想要做的事情。

是否有蛋糕方法可以做到这一点?我在数据库中没有自动递增的id列,而只是一个id列(这是唯一的)。

谢谢!

1 个答案:

答案 0 :(得分:1)

让数据库为您完成:

$this->Model->updateAll(array('sum' => 'column1 + column2 + column3'));

http://book.cakephp.org/view/1031/Saving-Your-Data(请参阅updateAll部分)。