2016-11-26 100 views
-1

如果玩家贏得了某些積分,根據積分有一些等級,現在如果我擁有玩家的總積分,我想通過在表格中檢查玩家是否已經超過最低積分限制來更新他/她的等級達到下一個水平?如何檢查給定值大於或等於mysql數據庫?

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

球員目前的積分,只要他達到400他的水平應該更新到2

playerid playername level 
    1   abc  1 
    2   xyz  3 
+1

也許寫一個查詢? – 2016-11-26 04:26:03

回答

0
update table_name 
set level =case when points <350 then 1 
       when points >= 350 then 2 
       else 3 
      end  
+0

如果我通過點作爲參數那麼它會在2 停止,即使有可用的附加級別的,因爲當將評估爲真 當500 <350然後1 當500> = 350然後2 當500> = 400然後3 其他4 –

+0

@swanandkeskar如果你有更多的這些級別比你可以創建動態的case語句,將爲你工作。 –

0

如果你有一個表名爲球員與領域ID和350 和表與字段比以下查詢會起作用

SELECT players.*,max(levels.level) AS level 
FROM players 
LEFT JOIN levels ON players.points >= levels.points 
GROUP BY players.id 
+0

我想更新播放器的級別 –

+0

從選擇更新覆蓋在另一個問題http://stackoverflow.com/questions/1262786/mysql-update-query-based-on-select-query –

相關問題