Как обновить таблицу со сложным условием?

Есть таблица с двумя полями: id, active
И есть список id (id_list), которые не надо обновлять. Как обновить только те записи в таблице, которые не попадают в список id_list, и у которых active=1

Я пока придумал такие варианты:
1) делаю выборку нужных элементов, а потом обновляю их по одному.
$data = Model::find()->where(['not in', 'id', $id_list])->andWhere(['active' => 1])->all();
foreach($data as $line) {
	// обновить элемент
}


2) задаю условие напрямую
Model::updateAll(['active' => 0], 'active = 1 AND id NOT IN ('.implode(',', $id_list).')');


Но что-то ни один из этих вариантов мне не нравится.
  • Вопрос задан
  • 224 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы