Допустим, у меня есть таблица tbl со столбцами id и title .
Мне нужно изменить все значения заголовка столбца:
- от '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 секунд), и у меня огромное количество обновлений для выполнения.
Итак, можно ли объединить обновления, чтобы таблица сканировалась только один раз? Или, возможно, есть лучший способ справиться с такой ситуацией.
РЕДАКТИРОВАТЬ: обратите внимание, что реальные данные, с которыми я работаю, и изменения в данных, которые я должен выполнить, на самом деле не так просты - строки длиннее и не следуют какой-либо схеме (это пользовательские данные, поэтому никакие предположения не могут быть сделаны - это может быть что угодно).