Подтвердить что ты не робот

Обновить mysql с условием if

Кажется, у меня большие проблемы с условными запросами:( Я должен сделать условное обновление. Я пишу здесь, что я хотел бы сделать:

 if(select tipo from abbonamento where idU=17)='punti' then     
 update abbonamento set punti=punti-1 
 else
 update abbonamento set bonus=bonus-1

Очевидно, это не работает. Любая идея?

4b9b3361

Ответ 1

MySQL поддерживает оператор IF.

UPDATE  abbonamento
SET     punti = IF(tipo = 'punti', punti - 1, punti),
        bonus = IF(tipo <> 'punti', bonus - 1, bonus)
WHERE   id = 17

или вы также можете использовать CASE

UPDATE  abbonamento
SET     punti = CASE WHEN tipo = 'punti' THEN punti - 1 ELSE punti END,
        bonus = CASE WHEN tipo <> 'punti' THEN bonus - 1 ELSE bonus END
WHERE   id = 17