【问题标题】:Update MySQL with if condition使用 if 条件更新 MySQL
【发布时间】:2013-02-21 11:32:28
【问题描述】:

我似乎在条件查询方面遇到了很大的问题

我必须进行条件更新。我在这里写下我想做的事:

 IF(SELECT tipo FROM abbonamento WHERE idU = 17) = 'punti' THEN
     UDPATE abbonamento SET punti = punti - 1 
 ELSE
     UPDATE abbonamento SET bonus = bonus - 1

显然这不起作用。
有什么想法吗?

【问题讨论】:

    标签: mysql sql sql-update


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2017-03-13
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      • 1970-01-01
      • 2020-11-12
      • 1970-01-01
      • 2020-06-27
      相关资源
      最近更新 更多