Yii Framework мигрировать

0

Итак, в основном я хочу сделать файл, который внесет некоторые изменения в мою базу данных. Я должен ввести некоторые данные, но чтобы быть быстрее, я хочу использовать оператор sql IN. Так что я хочу выглядеть примерно так:

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

regionId должен быть установлен в 1, когда countyId равен 3,6,7,9,4 и так далее

Я знаю, что это не сработает, но я не знаю, как заставить его работать, и можно ли заставить его работать.

Теги:
sql-update
yii

2 ответа

0
Лучший ответ

См. CDbCommand, где 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);
  • 0
    Спасибо! Работал как шарм
0

Используйте предложение ANY

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню