Заменить строку в каждом столбце в определенной таблице

0

У меня есть таблица DB, в которой много таблиц. Я хочу найти каждую из этих таблиц, чтобы найти, у которой есть строка, а затем заменить ее на другую.

Я хочу, чтобы я нашел одно поле с этой строкой, а затем обновил его до другой строки

Я пробовал этот действительно уродливый запрос:

UPDATE 'myTable' 

SET
c1 = 'hello',
c2 = 'hello',
c3 = 'hello',
c4 = 'hello',
c5 = 'hello',
c6 = 'hello'

WHERE 
c1 = 'hi',
c2 = 'hi',
c3 = 'hi',
c4 = 'hi',
c5 = 'hi',
c6 = 'hi'

Но это очевидно неправильно, поскольку если c1 является 'hello' вместо того, чтобы просто обновлять c1 до 'hi' он обновляет все поля до 'hi'

  • 0
    Я бы просто сделал отдельное обновление для каждого столбца.
Теги:

1 ответ

3

Вы хотите условное обновление:

UPDATE tbl
SET c1 = CASE WHEN c1='hi' THEN 'hello' else c1 end
   ,c2 = CASE WHEN c2='hi' THEN 'hello' else c2 end
   -- and so on...
WHERE 'hi' IN (c1,c2,c3,c4,c5);
  • 0
    where необходимо?
  • 0
    @ vivek_23 Нет, но нет случая обновления строк, которые не должны меняться вообще.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню