Массовое изменение данных в таблице БД
У меня есть таблица в БД, со списком товаров, примерно 400к записей. В php у меня формируется из другого источника список идентификаторов товаров (кол-во может быть от 1 до до макс. кол. товаров в БД).
Нужно каким-то образом у всех товаров из БД, изменить значение одного поля, например сделать ACTIVE = 0, только для тех товаров, которых нет в моем массиве.
Какие есть способы?
Я предполагаю примерно так:
$arIds = []; // массив ID товаров, у которых не нужно менять активность
далее такой запрос:
'UPDATE `products` SET `ACTIVE`='0' WHERE `ID` not in (' . implode(', ', $arIds) . ')'
может ли такой вариант, из-за длинного SQL запроса (т.к. может быть список из 400к идентификарторов) быть ошибки ?
Или есть другие способы? Может нужно через chunk разбивать массив Id и по 1К изменять ?