Ich denke, dass die folgende Abfrage das gewünschte Ergebnis liefert. Zuerst müssen Sie den Rang in einer Unterabfrage berechnen. Ich denke, es ist viel einfacher als Ihr Ansatz, Sie müssen nur Ihre Ergebnisse nach Siegen und Unterschieden in absteigender Reihenfolge sortieren (angenommen, die Felder sind Zahlen). Dann wählen Sie einfach alle Ergebnisse aus und ändern Reihenfolge zum Spieler desc.
SELECT player, wins, diff,rank from
(
SELECT player, wins, diff, @winrank := @winrank + 1 AS rank
from tmpPoradi,(SELECT @winrank := 0) r
ORDER BY wins DESC,diff DESC
) rt
ORDER BY player
Hoffe, ich übersehe nichts.