MySQL - 在同一个表中乘以字段,存储在同一个表中

时间:2012-10-02 20:36:19

标签: mysql sql

我有一个看起来像这样的表:

Quote     Super      Factor
29        63                   [83.79]
38        61                   [81.13]
79        65                   [86.45]

47        40                   [80]
81        25                   [50]
82        35                   [70]

我想把列'超级'乘以1.33 IF 'Quote'是29,38,79。如果字段'Quote'是47,81,82然后乘以'超级'由2。

引用是“BigInt(10)”,“超级”和“因素”都有一种“双重”。表的名称是“Quote_IDX”。

注意:完成此计算后,“[]”中的数字应该是我应该得到的。你可能会说我对MySQL很新,所以我需要一些帮助。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用以下使用CASE语句的内容。 SELECT会显示数据结果:

select quote, super, 
  case when quote in (29, 38, 79)
        then super * 1.33
      when quote  in (47, 81, 82)
        then super * 2.0
      else 0
  end factor
from Quote_IDX

SQL Fiddle with demo。然后,如果您想要UPDATE列的factor

update Quote_IDX
set factor = (case when quote in (29, 38, 79)
                then super * 1.33
              when quote  in (47, 81, 82)
                then super * 2.0
              else 0 end)

请参阅SQL Fiddle with Demo