Если игрок заработал определенные очки, в зависимости от количества очков, есть несколько уровней, теперь, если у меня есть общее количество очков игрока, я хочу обновить его / ее уровень, проверив в таблице, превысил ли игрок минимальный предел очков для достижения следующий уровень?

level   desc      points
 1      level 1    200
 2      level 2    400
 3      level 3    600

Текущие очки игрока составляют 350, как только он достигает 400, его уровень должен быть обновлен до 2

playerid    playername  level
  1            abc        1
  2            xyz        3 
-1
swanand keskar 26 Ноя 2016 в 07:19

2 ответа

Лучший ответ
update table_name
set level =case when points <350 then 1
                when points >= 350 then 2 
                else 3  
           end      
0
Ankit Agrawal 26 Ноя 2016 в 04:44

Если у вас есть таблица с именем Players с полями id и points и таблица с именем levels с полями level и points , чем следующий запрос будет работать

 SELECT players.*,max(levels.level) AS level 
 FROM players 
 LEFT JOIN levels ON players.points >= levels.points 
 GROUP BY players.id 
0
Ralph Ritoch 26 Ноя 2016 в 04:48