我工作的一個基於時間的遊戲(其中較低的時間比較好),我有這方面的排行榜,其中每一個的通關存儲到一個SQL數據庫。獲取最高分,但刪除重複的用戶(SQL)
我想獲得最高15最低(最好)從數據庫次,但只顯示每個用戶一個輸出,以便顯示前15名用戶的最佳時期,但我似乎無法在返回所有信息時做到這一點。
我使用的查詢是:
SELECT * FROM `scores` WHERE size='$size' ORDER BY `time` ASC LIMIT 15
謝謝。
我工作的一個基於時間的遊戲(其中較低的時間比較好),我有這方面的排行榜,其中每一個的通關存儲到一個SQL數據庫。獲取最高分,但刪除重複的用戶(SQL)
我想獲得最高15最低(最好)從數據庫次,但只顯示每個用戶一個輸出,以便顯示前15名用戶的最佳時期,但我似乎無法在返回所有信息時做到這一點。
我使用的查詢是:
SELECT * FROM `scores` WHERE size='$size' ORDER BY `time` ASC LIMIT 15
謝謝。
如果您使用user
列對數據進行分組,則可以使用MIN()
來隔離每個用戶的最低/最佳時間。最後,你按BestTime
ASC
(這樣低的數字列第一),並截斷結果與LIMIT
設置。
查詢:
SELECT `user`, MIN(`time`) AS BestTime
FROM `scores`
WHERE `size` = '10x10'
GROUP BY `user`
ORDER BY `BestTime`
LIMIT 15;
謝謝!它的工作,並沒有使用子查詢。 –
你似乎想是這樣的:
select s.*
from scores s
where s.score = (select max(s2.score) from scores s2 where s2.userid = s.userid)
order by s.score asc
limit 15;
我不知道什麼是size
在您的示例查詢。
這是一個基於板的遊戲,所以我存儲的大小的董事會。 –
SELECT * FROM (SELECT user,size,min(time) as time FROM scores
WHERE size = '10x10'
GROUP BY user, size)
ORDER BY time
LIMIT 15
爲每個用戶選擇最短時間,並返回前15名用戶的最短時間分數。
...分鐘(時間)時間 –
@FabienTheSolution肯定。謝謝。做了編輯。 – Vahid
什麼是'size'? –
這是一款基於棋盤的遊戲,所以我存儲了棋盤的大小。 –
http://stackoverflow.com/questions/5967130/mysql-select-one-column-distinct-with-corresponding-other-columns保持你的例子的限制 – mickmackusa