Скажем, у меня есть таблица tbl с идентификаторами столбцов и заголовком. Мне нужно изменить все значения столбца заголовка:
- от 'a-1' до 'a1',
- от 'a.1' до 'a1',
- от 'b-1' до 'b1',
- от 'b.1' до 'b1'.
Сейчас я выполняю два оператора UPDATE:
UPDATE tbl SET title='a1' WHERE title IN ('a-1', 'a.1')
UPDATE tbl SET title='b1' WHERE title IN ('b-1', 'b.1')
Это вовсе не проблема, если таблица небольшая, а один оператор завершается менее чем за секунду, и вам нужно всего несколько инструкций для выполнения.
Вероятно, вы его оценили - у меня есть огромная таблица для работы (один оператор завершается примерно через 90 секунд), и у меня есть огромное количество обновлений для выполнения.
Итак, возможно ли объединить обновления, чтобы он только сканировал таблицу один раз? Или, возможно, есть лучший способ справиться в такой ситуации.
EDIT: обратите внимание, что реальные данные, с которыми я работаю, и изменения данных, которые я должен выполнить, на самом деле не так просты - строки длиннее и они не следуют ни одному шаблону (это данные пользователя, поэтому никаких предположений не может быть сделано - это может быть что угодно).