Yii 框架迁移

Yii framework migrate

所以,基本上我想要的是制作一个文件,对我的数据库进行一些更改。我必须输入一些数据,但为了更快,我想使用 sql IN 运算符。所以我想要的应该是这个样子:

$this->update('basicInfo', array('regionId' => 1), 
'WHERE countyId IN (SELECT id FROM countyTable WHERE regionId = 1 )')

countyId为3,6,7,9,4等时regionId应设置为1

我知道这行不通,但我不知道如何让它起作用,是否有可能让它起作用。

See CDbCommand where function doc 有关如何使用 sql 'in' 标准的更多信息。

我会这样做:

// retrieve county ids for regionId = 1
$dbConn         = $this->getDbConnection();
$countyTableIds = $dbConn->createCommand()
    ->select('id')
    ->from('countyTable')
    ->where('regionId = 1')
    ->queryAll();

// prepare condition as array. 
$condition = array('in', 'countyId', $countyTableIds);

// update
$this->update('basicInfo', array('regionId' => 1), $condition);

使用 ANY 子句

UPDATE mytable
    SET status = 'inactive'
  WHERE countyId = ANY (SELECT id FROM countyTable WHERE regionId = 1 )