Подскажите пожалуйста, как добавить в запрос sql "если то"

Подскажите пожалуйста, как добавить в запрос sql "если то"

Есть запрос выполняемый из php:

$sql = 'UPDATE `_ba` 

SET `w_st`=`w_t`+`w_s`+`w_z`+`w_u`

В той же таблице есть поле w_rb со значениями: R1, R2 и R3

как задать условие:

$sql = 'UPDATE `_ba`

если поле в таблице w_rb равно R1 или R2

то

SET `w_st`=`w_t`+`w_s`

если поле в таблице w_rb равно R3

то

SET `w_st`=`w_t`+`w_s`+`w_z`+`w_u`

Вот так не работает:

$sql = 'UPDATE `_ba` 
WHERE `w_rb`= `R3`
SET `w_st`=`w_t`+`w_s`+`w_z`+`w_u`

Ответы (1 шт):

Автор решения: Akina

Используйте функцию CASE:

UPDATE `_ba` 
SET `w_st` = `w_t` + 
             `w_s` +
             CASE WHEN `w_rb`= 'R3' 
                  THEN `w_z`+`w_u` 
                  ELSE 0 
             END

Обратите внимание на кавычки - они разные.

→ Ссылка