0

简单地说,我正在尝试这样做:

$widgetsUsed->updateAll(array(
                'position'=>'- 1'
            ),
            "position > {$position} AND sidebar_id = {$sidebar_id}"
         );

有没有人知道这是否可行,或者提供一些其他建议如何实现这一目标?

很难调试它,因为我无法准确地弥补数据库中正在变化的值。所以我希望这里的任何人都能直接知道如何做到这一点。

提前致谢

4

1 回答 1

1

您可以尝试如下

Yii::app()->db->commandBuilder->createUpdateCounterCommand('{{myTable}}', array(
  'position' => 1, // -1 for decrementing
  new CDbCriteria(array(
        "condition" => "position > :pos AND sidebar_id = :id",
        "params" => array(
            "pos"=>$position, 
            "id"=>$sidebar_id
        )
    ))
));

如果你有higher version of Yii,那么你可以使用http://www.yiiframework.com/wiki/282/using-counters-with-activerecord/

于 2012-11-13T14:57:04.430 回答