2011-12-16 41 views
1

是的,有很多類似的問題,但我真的無法解決我的問題。不幸的是,我沒有足夠的知識去理解類似問題的答案來解決我的問題^^。高分表 - 如何給每位用戶最高分數?

我有id,name,score,ip變量。我不在乎身份證或IP變量..

我的查詢是這樣的;

$query = "SELECT * FROM highscores ORDER BY score + 0 DESC LIMIT 10"; $result = mysql_query($query);

這給higscore表,但是,也有同一用戶的不同的分數。我想要顯示每個用戶的最高分數。

我甚至不知道爲什麼我的代碼中有+0。爲什麼如果我刪除它表不顯示爲desc。

回答

3

下面的查詢會給你每個球員的名字和他的最好成績:

SELECT name, MAX(score) FROM highscores GROUP BY name ORDER BY MAX(score) DESC LIMIT 10 
+0

我以前已經嘗試過,不幸的是它給了我一個未定義的偏移錯誤。我想我應該在內聯查詢中創建一個查詢,或者像這樣首先定義這些變量。 – 2011-12-16 01:27:57

0
$query = "SELECT * FROM highscores ORDER BY ABS(score) DESC LIMIT 10"; 

這應該允許您運行不帶零的查詢。

至於從列表中刪除重複的用戶分數,要麼只記錄每個用戶的最佳分數,要麼做一些進一步處理以將它們從列表中移除。循環播放結果並僅挑選每個用戶的最高分數將非常簡單。

+0

是的,有ABS,我可以沒有零運行查詢。但我不知道爲什麼別人不使用abs或零,但我應該^^。 是的,我想我必須創建一個更多的查詢來爲同一用戶選擇最佳分數。但我不知道如何去做。 – 2011-12-16 01:32:31