У меня есть таблица 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'
Вы хотите условное обновление:
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);
where
необходимо?