我有這個小問題: 我想使用MySQL爲我的遊戲組織一個top10列表。嗯,實際上它已經可以工作,但我需要爲它添加一個功能。 說,我得到了一個表,其中包含一個名爲「級別」 的字段,例如,數據庫中有一萬名玩家,每個玩家都有自己的等級。所以,要創建一個前十名單我這樣做:TOP 10使用MySQL的玩家列表,顯示玩家的個人位置,即使他不在排行榜上
SELECT `values`.`level` FROM `values` ORDER BY `values`.`level` DESC LIMIT 10
它工作正常,並給我10個最高水平的球員。但是如果球員本人不在前十名單上呢?他想知道他剩下多少錢才能到達那裏。 讓我們這樣表示: 他看到的分數表顯示了10個最好的玩家,而在桌子底部看到了他自己的記錄,例如你的位置是4023 當然,我可以從MySQL中檢索所有記錄,按順序排列它們降,並使用循環計數的用戶的位置,但隊長明顯是在告訴我,這是不是:-)
最合理的方法,我需要的結果這個樣子的(僅適用於10個用戶,而不是5)
+-------+------+--------+
| level | pos |user |
+-------+------+--------+
| 23 | 1 |Alex |
| 19 | 2 |John |
| 18 | 3 |James |
| 16 | 4 |Ashley |
| 15 | 5 |Casey |
| | | |
| 4 | 145 |You |
+-------+------+--------+
那麼,有沒有辦法在一個查詢中做到這一點?
謝謝!
請爲您的表結構添加一個'DESCRIBE'或'SHOW CREATE TABLE'! – Kaii
因此,每個玩家對「等級」都有獨特的價值?或者可以有多個玩家擁有相同的等級? –
你可能想看看Rank()函數。這是一個類似的問題。答案可能對你有幫助。 http://stackoverflow.com/questions/3333665/mysql-rank-function – Kevin