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