Yii框架迁移

时间:2015-03-05 14:33:22

标签: php sql yii sql-update

所以,基本上我想要的是创建一个文件,对我的数据库进行一些更改。我必须输入一些数据,但为了更快,我想使用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,依此类推

我知道这不会奏效,但我不知道如何让它发挥作用,是否有可能让它发挥作用。

2 个答案:

答案 0 :(得分:0)

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

我会这样做:

// 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);

答案 1 :(得分:0)

使用ANY条款

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