MySQL запрос по математике - PullRequest
1 голос
/ 20 января 2012

В моей игре есть таблица огнестрельного оружия, в ней есть 3 поля:

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

Таймер показывает, как часто в секундах его можно выстрелить.Theres намного больше рядов чем это, но ..

Я хочу тянуть их в порядке скорострельности, которая может нанести урон больше всего каждую минуту.Таким образом, пистолет будет наносить 10 урона каждую минуту, дробовик 12,5, снайпер 16.

Как бы я это сделал в качестве запроса?

SELECT * FROM firearms ORDER BY ?

Возможно, это какая-то базовая математика, но я 'Я не думаю ясно.

Ответы [ 5 ]

1 голос
/ 20 января 2012

Вам просто нужно рассчитать взвешенный урон, я думаю, что-то вроде этого будет делать:

SELECT * FROM firearms ORDER BY (dmg * (60/timer)) desc
0 голосов
/ 20 января 2012
SELECT name, (dmg/timer) FROM Weapons ORDER BY (dmg/timer)

возвращает все оружие в базе данных по его DPS (урон в секунду) с двумя столбцами: имя и DPS.

0 голосов
/ 20 января 2012
SELECT 
  dmg*60.0/timer AS DamagePerMinute,
  *
FROM firearms 
ORDER BY 1 DESC
0 голосов
/ 20 января 2012
SELECT Name,
    dmg,
    timer, 
    (dmg * (60 / timer)) as  
FROM firearms 
ORDER BY xx desc 
0 голосов
/ 20 января 2012

Попробуйте:

SELECT * FROM firearms ORDER BY dmg/timer desc

- чтобы получить больше всего урона первым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...