Quote:
Originally Posted by Bugsy
What are you trying to do? Maybe it can be written a different way
Edit: Try this, you will need to add the few other conditions that you have.
PHP Code:
SELECT
( SELECT COUNT(*) + 1
FROM tblData
WHERE ((Kills/Deaths) > (t.Kills/t.Deaths) OR ((Kills/Deaths) = (t.Kills/t.Deaths) AND id<t.id))
) as rowIndex,
t.Kills/Deaths,
AuthID
FROM tblData t
ORDER BY rowIndex ASC;
Source [ID, kills, deatrhs, authID]
Code:
"1" "20" "9" "STEAM_1"
"2" "50" "12" "STEAM_2"
"3" "90" "33" "STEAM_3"
"4" "52" "9" "STEAM_4"
"5" "31" "55" "STEAM_5"
Result [Rank, Kills/Deaths, AuthID]
Code:
"1" "5" "STEAM_4"
"2" "4" "STEAM_2"
"3" "2" "STEAM_1"
"4" "2" "STEAM_3"
"5" "0" "STEAM_5"
|
What I want is not difficult, I just want to take the line number in the querie to determine the "rank" of the player, the problem with your suggestion is that it is extremely expensive, while my querie performs in 80 ~ 90ms its delay 1980 ms on average.
Could you give me your syntax analysis below? It would have to change the way the querie is made, since the search would be straight from the steamid table, but it was supposed to work, what do you think?
PHP Code:
SELECT (COUNT(*) + 1) AS Rank FROM tablename WHERE ((1.0 * kills) / deaths) > (SELECT ((1.0 * kills) / deaths) FROM tablename WHERE auth = '%s' AND enabled = 1 AND kills > 0 AND deaths > 0 AND kills > 100 AND kills > deaths);
__________________