muhammad_97
@muhammad_97
PHP-разработчик

Уменьшить количество за один запрос?

Есть массив идентификаторов и массив чисел. Нужно каждой записи с id из первого массива уменьшить значение поля count в таблице на значение из второго. Т.е.:

$ids = [1, 2, 3];
$values = [5, 7, 10];

Значение count записи с id 1 уменьшается на 5 и т.д. Подскажие, пожалуйста, как можно это реализовать в один запрос в Eloquent, если вообще возможно
  • Вопрос задан
  • 404 просмотра
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Можно сделать на чистом mysql.
(см. последний абзац)
("Обновление записи с выборкой по условию одним запросом")
Ответ написан
AmdY
@AmdY
PHP и прочие вебштучки
Этот вопрос уже обсуждался, т.к. у вас дельны разные, то возможен только вариант с CASE в mysql, что лучше не делать, получится бред вроде
Foo::whereIn($array1)->update('counter', Db::raw('counter - (CASE WHEN 1 THEN 5.......)'));
Не экономьте на спичках.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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