Mysql公式根据列中的值计算出它们有多少点


Mysql formula to work out how many points they have according to value in a column

我已经做了很长很艰难的工作,但我知道它可以做得更快更容易;)

如果我有一个名为"puzzle_level"的列,我希望每个puzzle_level=5的记录有10分,每个puzzle _level=6的记录有25分,如果puzzle-level=7的记录有50分;

快速编辑,我实际上需要一个PHP中的可变总计,所以它将是$total_points=$sql_formula

您可以简单地使用条件CASE表达式:

SELECT 
    points + 
    CASE puzzle_level 
        WHEN 5 THEN 10 
        WHEN 6 THEN 25 
        WHEN 7 THEN 50 
    END AS totalpoints
FROM your_table

这将基于puzzle_level的点数添加到points列中的总点数。

然后,简单地引用PHP中的'totalpoints'列。

UPDATE `table`
SET `points` =
  IF `puzzle_level` = 5 THEN 10
    ELSEIF `puzzle_level` = 6 THEN 25
    ELSEIF `puzzle_level` = 7 THEN 50
  END IF