Update multiple rows with different update values feature request · Issue #575 · laravel/ideas
Mon Jun 13 2022 15:01:07 GMT+0000 (Coordinated Universal Time)
Saved by
@WMOH
public static function updateValues(array $values)
{
$table = MyModel::getModel()->getTable();
$cases = [];
$ids = [];
$params = [];
foreach ($values as $id => $value) {
$id = (int) $id;
$cases[] = "WHEN {$id} then ?";
$params[] = $value;
$ids[] = $id;
}
$ids = implode(',', $ids);
$cases = implode(' ', $cases);
$params[] = Carbon::now();
return \DB::update("UPDATE `{$table}` SET `value` = CASE `id` {$cases} END, `updated_at` = ? WHERE `id` in ({$ids})", $params);
}
content_copyCOPY
https://github.com/laravel/ideas/issues/575
Comments