Задать вопрос
@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
  • Вопрос задан
  • 2718 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Java-разработчик
    9 месяцев
    Далее
  • GB (GeekBrains)
    Профессия Python-разработчик
    10 месяцев
    Далее
Решения вопроса 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'))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы