У меня есть таблица с такими столбцами: win, los, id...
Я хочу упорядочить таблицу по этому индексу: выигрыш / (выигрыш + проигрыш) * 30 + выигрыш / СУММ(выигрыш) * 70, а затем найти ранг для двух идентификаторов. Я не очень хорошо разбираюсь в MySQL, поэтому то, что я написал, совершенно неверно. (Он использует Perl + DBI + DBD::mysql):
$stmt=$con->prepare("SET @rk := 0");
$stmt=$con->prepare("SELECT rank, id FROM (
SELECT @rk := @rk + 1 AS rank,
(win/(win+los)*30+win/SUM(win)*70) AS index,
win, los, id
FROM tb_name ORDER BY index DESC) as result
WHERE id=? AND id=?");
$stmt -> bind_param ("ii", $id1, $id2);
$stmt -> execute();
$stmt -> bind_result($rk, $idRk);
А также этот запрос должен выполняться, может быть, каждые 5-10 секунд для каждого пользователя, поэтому я пытаюсь найти что-то очень, очень быстро. При необходимости я мог добавить, изменить, удалить любую колонку, чтобы было максимально быстро.