0
我要尋找的SQL語句返回用戶按分數排名,但爲了這樣做,這是不符合下面的代碼發生的事情:用於按照正確順序獲取用戶級別的SQL語句?
$sql = "SELECT COUNT(*) AS rank FROM users WHERE points>=(SELECT points FROM users WHERE uid='$uid')";
相反,每個用戶取決於有多少具有相同的等級有用戶。因此,如果有25個用戶,他們的每個等級都將顯示爲25,但事實並非如此,因爲每個用戶必須有個人等級。
我已經嘗試了幾種不同的解決方案,但我不能將邏輯放在一起。我以爲這會工作:
$sql ="SELECT COUNT(*)-1 AS rank FROM users WHERE points>=(SELECT points FROM users WHERE uid='$uid' ORDER BY DESC)";
但我沒有成功。
TLDR;如何更改我的SQL語句以反映用戶按分數排序,而不是多個用戶具有相同的排名?
我不知道這是否應該被標記爲PHP或SQL,我很抱歉,如果我錯了! – Dylan
'選擇用戶,排名排名desc'? 'COUNT(*)'只返回結果中的行數,與點或用戶無關。 – drew010
請顯示樣本數據和預期輸出。 –