CActiveRecord中updateAll的问题

请问各位,在yii中如何实现以下sql语句

update table set t_num = t_num+1 where id in (1,2,3,4,5)

我尝试用以下代码去实现

$criteria = new CDbCriteria;

$criteria->addInCondition(‘id’, $ids);

self::model()->updateAll(array(‘t_num’=>‘t_num+1’), $criteria);

但得出的结果,t_num值全部置0了,然后我试过替换为

self::model()->updateAll(array(‘t_num’=>5), $criteria);则正常执行

请问我是哪里用错了吗?谢谢。

有一个东东叫做 updateCounters

试过,是这样子写吗?

self::model()->updateCounters (array(‘t_num’=>‘t_num+1’), $criteria);

直接输出error

已解决

看一下blog源码更新tag的频率的代码

$this->updateCounters(array(‘frequency’=>1),$criteria);

上面的代码就是frequency字段每次更新加1

model()->updateAll(array($model->pass=1),$criteria);

how to slove this?as my project ,it seems that updateAll doesn’t work. :huh:

solved !!!

model()->updateAll(array(‘pass’=>1),$criteria); ::)