2012-01-20 64 views
1

我有槍支的表在我的遊戲,它有3個字段:MySQL的數學基於查詢

Name  dmg timer 
------------------------ 
Pistol  5  30 
Shotgun 10  45 
Sniper  16  60 

定時器代表它如何往往在幾秒鐘內拍攝。 Theres比這更多的行,但..

我想拉他們按照火率的順序,哪一個可以破壞每分鐘最多。所以手槍每分鐘會造成10點傷害,霰彈槍12.5,狙擊手16.

我該如何做這個查詢?

SELECT * FROM firearms ORDER BY ? 

這也可能是一些基本的數學,但我沒有考慮清楚。

回答

1

你只需要計算加權傷害,我覺得像這樣的事:

SELECT * FROM firearms ORDER BY (dmg * (60/timer)) desc 
+1

應該是60 /定時器,而不是定時器/ 60,我想。 –

+0

啊,是的,剛剛糾正。我認爲這是武器可以射擊的時間長度,但這對於狙擊步槍來說顯然沒有意義! :D –

+0

這將是一個**真棒**狙擊步槍...... :) –

0

嘗試:

SELECT * FROM firearms ORDER BY dmg/timer desc 

- 獲得最具破壞性第一。

0
SELECT Name, 
    dmg, 
    timer, 
    (dmg * (60/timer)) as 
FROM firearms 
ORDER BY xx desc 
0
SELECT 
    dmg*60.0/timer AS DamagePerMinute, 
    * 
FROM firearms 
ORDER BY 1 DESC 
0
SELECT name, (dmg/timer) FROM Weapons ORDER BY (dmg/timer) 

返回由自己的DPS(每秒傷害)數據庫中的所有武器,與兩列:名稱,以及DPS。