@Normant

Как сделать CASE WHEN THEN для нескольких значений?

Друзья, вопрос по базам данных. Запрос, который работает:
UPDATE `col` SET
`nul` = CASE
WHEN (`attr1`,`attr2`) = ('param1','otv1') THEN '1'
WHEN (`attr1`,`attr2`) = ('param1','otv2') THEN '2'
WHEN (`attr1`,`attr2`) = ('param1','otv3') THEN '3'
END
WHERE (`attr1`,`attr2`) IN (('param1','otv1'),('param1','otv2'),('param1','otv3'))


Но если нужно ввести еще столбец, который нужно так же изменять исходя из данных этих же, то как записать?

Грубо говоря:
nul = 1, если attr1 == param1 && attr2 == otv1

преобразовать записью в:
nul = 1 && bul = x, если attr1 == param1 && attr2 == otv1
  • Вопрос задан
  • 2630 просмотров
Решения вопроса 1
@mnbck
UPDATE `col` SET
`nul` = CASE
WHEN (`attr1`,`attr2`) = ('param1','otv1') THEN '1'
WHEN (`attr1`,`attr2`) = ('param1','otv2') THEN '2'
WHEN (`attr1`,`attr2`) = ('param1','otv3') THEN '3'
END,
`bul` = CASE
WHEN (`attr1`,`attr2`) = ('param1','otv1') THEN '1'
WHEN (`attr1`,`attr2`) = ('param1','otv2') THEN '2'
WHEN (`attr1`,`attr2`) = ('param1','otv3') THEN '3'
END
WHERE (`attr1`,`attr2`) IN (('param1','otv1'),('param1','otv2'),('param1','otv3'))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы