CakePHP使用记录ID更新多行,相同的模型

时间:2014-08-21 11:41:47

标签: cakephp model

我想更新模型。我有这样的查询

UPDATE mymodels SET `myfield` = 100 WHERE `id`=12 OR `id`=13 OR `id`=14
// also the same:
UPDATE mymodels SET `myfield` = 100 WHERE `id` IN (12,13,14)

我试过这个:

$this->MyModel->updateAll(
    // fields
    array('MyModel.myfield' => 100),
    // conditions
    array('MyModel.id' => 12)
);

但我需要更新20条不同的记录 记录ID就像这个12,13,14 ....

1 个答案:

答案 0 :(得分:7)

如果要更新的记录是连续的,请尝试添加两个条件,例如

$this->MyModel->updateAll(
    array('MyModel.myfield' => 100),
    // conditions
    array('MyModel.id >=' => 12, 'MyModel.id <=' => 20)
);

如果ids的索引之间没有关系,请尝试使用数组

$this->MyModel->updateAll(
    array('MyModel.myfield' => 100),
    // conditions
    array('MyModel.id' => array(12,13,14...))
);