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