我的表格包含这两个真实字段current
和origin
。
current
值会定期更新。我想写一个重置脚本:对于每一行,我想将origin
值放在current
值中。
在 MySQL 中,可以使用此查询:
update MyTable set current = origin
我尝试使用查询构建器在Yii2中编写它:
return $this->updateAll(['current' => 'origin']);
但这不起作用,因为origin
被解释为字符串,所有行都使用值0
更新。
那么我如何使用updateAll()
?
答案 0 :(得分:9)
将origin
包裹在yii\db\Expression中,如下所示:
use yii\db\Expression;
...
return $this->updateAll(['current' => new Expression('origin')]);
,结果将如预期一样。