Мне нужно объединить два sql update запроса в один
UPDATE test SET text = 'ok' WHERE id = '1'
UPDATE test SET text = 'no' WHERE id = '2'
Пробовал так:
UPDATE test SET text = 'ok' WHERE id = '1';
UPDATE test SET text = 'no' WHERE id = '2'
но не работает. Помогите, пожалуйста.
UPDATE test SET text =
CASE
WHEN id = 1 THEN 'ok'
WHEN id = 2 THEN 'no'
ELSE text
END
update test join (select 1 a, 'ok' b union all select 2,'no') x
on test.id=x.a
set text=b;
Мне нужно объединить два sql update запроса в один
Не нужно.
Не нужно объединять запросы без серьезной причины.
В данном случае ни одной причины нет - оба запроса прекрасно отработают по отдельности.
Если здесь нужна была блокировка строки, то, во-первых, её здесь нету, а во-вторых, нет проблем сделать с блокировкой, двумя запросами.
Именно поэтому, задавая вопрос, надо всегда озвучивать реальную проблему, а не свои кустарные попытки её решить.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей