【问题标题】:CakePHP iterate through all rows in the DB and update?CakePHP 遍历数据库中的所有行并更新?
【发布时间】:2011-10-19 13:25:04
【问题描述】:

我不确定 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

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

有 cakephp 方法可以做到这一点吗?我在 db 中没有自动递增的 id 列,而只是一个 id 列(这是唯一的)。

谢谢!

【问题讨论】:

    标签: database cakephp


    【解决方案1】:

    让数据库为你做:

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

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

    【讨论】:

    • 哇,就这么简单吗??让我试试吧!谢谢!
    • 这或多或少是基本的 SQL。 UPDATE models SET sum = column1 + column2 + column3;
    • 抱歉,知道了!我没有使用双引号:/
    猜你喜欢
    • 1970-01-01
    • 2021-01-09
    • 2017-02-06
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多