Мне нужно обновить значения нескольких строк в таблице. Хочу использовать оператор CASE. Но в нём нужно использовать ELSE с именем поля. Без него остальные строки будут пустыми. Получается, что при обновлении с CASE обновляется вся таблица. Только неуказанные строки заново получают текущее значение. С большими таблицами это будет выполняться медленно?
Во первых, хотелось бы всё таки понять насчёт CASE. Во вторых - как ещё можно обновить в одном запросе несколько строк таблицы? Для каждой строки своё значение одного поля
Ничего не мешает. Я хочу разобраться в принципе работы оператора CASE. Если есть смысл использовать WHERE, то использую. Точнее использую IN
update без where просматривает все строки. case тут ни при чём. Сам же case - просто набор пар "утверждение" - "выражение". Если "утверждение" истинно, то результат - значение "выражения". Если ни одно из "утверждений" не истинно, то результатом будет выражение из блока else. --- Добавлено --- Подробнее: Выражение CASE – условный оператор языка SQL