0

在我的数据库表中,我的status列是 0 或 1。我正在执行一个操作,该操作必须使用最少的 mysql 请求来切换此字段。所以在我想设置的动作中

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

并更新模型。Aperantly 这不起作用,但有谁知道使用其当前值更新 db 字段的选项,而无需额外的 db 请求并切换字段值。

将起作用的结果查询是

UPDATE 'users' AS 'User' SET 'User'.'status' = 1 -'User'.'status' WHERE 'User'.'id' = 1

4

2 回答 2

0

我们假设您拥有要更改的字段的 pk(因为您不想为其创建模型)

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

// 构建并执行以下 SQL:

// UPDATE tbl_userSET name=:name WHERE id=:id

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

), 'id=:id', 数组(':id'=>1));

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

于 2013-09-23T13:12:50.337 回答
0
$model->status= 1 - $model->status;

$model->save();
于 2013-09-23T10:25:20.537 回答