雖然製作遊戲MySQL的調用來獲取前10名如下:MySQL的等級不匹配的高得分表
SELECT username, score FROM userinfo ORDER BY score DESC LIMIT 10
這似乎體面足夠的工作,但是當與呼叫配對獲得如果玩家與其他玩家的得分相同,則單個玩家的等級可能會不同。讓玩家排名的電話如下:從第一個電話
SELECT (SELECT COUNT(*) FROM userinfo ui WHERE (ui.score, ui.username) >= (uo.score, uo.username)) AS rank FROM userinfo uo WHERE username='boddie';
示例結果:從第二個電話
+------------+-------+
| username | score |
+------------+-------+
| admin | 4878 |
| test3 | 3456 |
| char | 785 |
| test2 | 456 |
| test1 | 253 |
| test4 | 78 |
| test7 | 0 |
| boddie | 0 |
| Lz | 0 |
| char1 | 0 |
+------------+-------+
示例結果
+------+
| rank |
+------+
| 10 |
+------+
可以看出,第一呼叫將名單上的第8位玩家排名,但第二次呼叫將他置於第10位。哪些更改或我能做些什麼來使這些呼叫得到匹配結果?
非常感謝您的幫助!
您有效地內的得分降序和用戶名降序排序,因此boddie比LZ和CHAR1 – Kickstart
對阿來下,我開始看到在看下面的所有偉大的答覆後的錯誤。有很多好的哈哈 – boddie