简单地说,我正在尝试这样做:
$widgetsUsed->updateAll(array(
'position'=>'- 1'
),
"position > {$position} AND sidebar_id = {$sidebar_id}"
);
有人知道这是否有效,或者提供一些其他建议如何实现?
很难调试这个,因为在我的数据库中,我无法准确地确定chaning的值。所以我希望这里的任何人都能直接知道如何做到这一点。
提前致谢
答案 0 :(得分: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/