所以,基本上我想要的是创建一个文件,对我的数据库进行一些更改。我必须输入一些数据,但为了更快,我想使用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,依此类推
我知道这不会奏效,但我不知道如何让它发挥作用,是否有可能让它发挥作用。
答案 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 )