Как массово сделать UPDATE в MySQL?
В $products больше 10 тысяч записей, как можно оптимизировать UPDATE?
$products = [
['id' => 1, 'title' => 'Заголовок', 'price' => 120],
['id' => 2, 'title' => 'Заголовок 2', 'price' => 125],
...
];
foreach($products as $product){
$db->query("UPDATE products SET price = '{$product['price']}' WHERE id = '{$product['id']}'");
}
Ответы (1 шт):
Автор решения: nazarpunk
→ Ссылка
update products
set price = case
when id = 1 then 120
when id = 2 then 125
else price
end
where id in (1, 2);