2011-06-12 14 views
1

我發現了很多關於此主題的信息,但它的過載。我似乎無法找到我正在尋找的解決方案,我發現的只是一般的東西。將數據插入到已排序的mySQL表中的正確位置,通過php/android

我有一個mySQL表設置像這樣:rank |名稱|得分

Android應用程序只在插入時知道名稱和分數。我使用php和httppost來插入數據。我知道該怎麼做。我想要做的是根據分數插入數據,並根據分數自動分配排名。

說我在數據庫中已經有這些值:

  1. 的Tiff 1000
  2. 艾倫800

,我想插入值 「傑克900」

怎麼辦我得到的結果表爲:

  1. 的Tiff 1000
  2. 傑克900
  3. 艾倫800

最好,我不想在手機或平板電腦是排序數據的東西,因爲我知道如何下載表格,插入信息,然後重新上傳,但我不希望該服務掛起一段時間,即使它在後臺也是如此。

解決方案?

回答

4

不排序表,查詢的結果進行排序:

SELECT username, score FROM yourTable ORDER BY score DESC 

只是AA注意:如果你想要MySQL的添加排名列:

SET @rank = 0, @prev_val = NULL; 
SELECT rank, username, score 
     FROM (SELECT @rank := IF(@prev_val=score,@rank,@rank+1) AS rank, 
        username AS username, 
        @prev_val := score AS score FROM yourTable ORDER BY score DESC) 
     AS result 

不要儲存因爲如果您這樣做,您需要每次插入新樂譜時更新表格中的每個較低排名行。

+0

謝謝!是的,我將離開列的排名,這很容易讓設備添加顯示數據時。雖然我已經編程了多年,但直到現在,我從未接觸過mySQL或php,它稍微習慣了! – Allen 2011-06-12 13:17:55

2

爲什麼不在使用SQL查詢獲取結果中使用「ORDER BY DESC score」?

相關問題