Yii切换数据库字段

时间:2013-09-23 09:33:47

标签: mysql yii sql-update toggle

在我的数据库表中,我有status列,它是0或1。 我正在做一个必须用最少的mysql请求切换这个字段的动作。所以在我要设置的动作中

  

$ model-> attributes ['status'] ='1 - status';

并更新模型。 显然这不起作用,但有没有人知道使用其当前值更新数据库字段而没有额外的数据库请求并切换字段值的选项。

将起作用的结果查询是

  

更新'用户'AS'用户'SET'用户'。'status'= 1 -'User'。'status'WHERE'User'。'id'= 1

2 个答案:

答案 0 :(得分:0)

$model->status= 1 - $model->status;

$model->save();

答案 1 :(得分:0)

我们假设你有你要改变的字段的pk(因为你不想为它创建模型)

$command = Yii::app()->db->createCommand();

//构建并执行以下SQL:

// UPDATE tbl_user SET name =:name WHERE id =:id

$command->update('tbl_user', array(
'name'=>'Tester',

),'id =:id',array(':id'=> 1));

http://www.yiiframework.com/doc/guide/1.1/en/database.query-builder#building-data-manipulation-queries