У меня есть таблица, похожая на это:
| key | value | |----------|-------| | limit | 15 | | viplimit | 25 | | .. | |
И у меня есть массив:
Array ( [0] => Array ( [key] => limit [value] => 10 ) [1] => Array ( [key] => viplimit [value] => 99 ) ...
Теперь, говоря, что у нас есть 100 строк. Какой был бы лучший способ обновить таблицу, соответствующую массиву?
Будет выбор запроса для каждой 100 строк, но это просто плохая производительность.
Это должно работать:
$statement = "UPDATE mytable SET key = CASE id WHEN 1 THEN 'key' WHEN 2 THEN 'another_key' WHEN 3 THEN 'some_key' END, value = CASE id WHEN 1 THEN 15 WHEN 2 THEN 25 WHEN 3 THEN 45 END WHERE id IN (1, 2, 3) "); DB::statement($statement);
Просто подумайте, как создать правильный запрос. Если это панель администратора или что-то, что будет выполняться не очень часто, я бы просто использовал итерацию, чтобы все было просто.