T The_Hulk Medlem sedan juni 2003 1 837 inlägg Frågan 13 dec. 2007 13:26 #1 Hej!
Jag har en tabell som innehåller spelare och deras poäng för varje datum.
+------------+---------+-------+
| date | player | score |
+------------+---------+-------+
| 2007-12-01 | Pelle | 126 |
| 2007-12-01 | Olle | 104 |
| 2007-12-01 | Bertil | 165 |
| 2007-12-02 | Pelle | 129 |
| 2007-12-02 | Olle | 113 |
| 2007-12-02 | Bertil | 154 |
| 2007-12-03 | Pelle | 146 |
| 2007-12-03 | Olle | 135 |
| 2007-12-03 | Bertil | 145 |
| 2007-12-04 | Pelle | 151 |
| 2007-12-04 | Olle | 155 |
| 2007-12-04 | Bertil | 150 |
+------------+---------+-------+
soterat blir det så här:
2007-12-01
Bertil 165
Pelle 126
Olle 104
2007-12-02
Bertil | 154
Pelle | 129
Olle | 113
2007-12-03
Pelle | 146
Bertil | 145
Olle | 135
2007-12-04
Olle | 155
Pelle | 151
Bertil | 150
Jag vill kunna se vilken placering en viss spelare hade ett visst datum. Hur får jag redan på spelarens placering när man sorterar efter högsta poäng?
För att få ut alla spelare i viss datum sorterade efter högsta poäng använder jag följande:
SELECT player, point FROM highscore WHERE date='2007-12-02' ORDER BY score DESC
P Peter S Medlem sedan dec. 2002 5 483 inlägg Om två personer med lika många poäng anses hamna på samma plats:
SELECT player
, point
, ( select count(*)+1 from highscore where date = '2007-12-02' and score > h.score ) as rank
FROM highscore h
WHERE date='2007-12-02'
ORDER
BY score DESC
T The_Hulk Medlem sedan juni 2003 1 837 inlägg hmm, det ville inte fungera för mig, fick inga träffar på det.
/r
ähh, var nog jag som använde fel datum. testar igen.
T The_Hulk Medlem sedan juni 2003 1 837 inlägg det fungerade som det skulle, en liten följdfråga.
om jag lägger till ett fält "rank" i tabellen, hur gör jag då för att uppdatera det fältet med spelarens placering den datumen?
T The_Hulk Medlem sedan juni 2003 1 837 inlägg Mysql ver 5.
/r
Hmm, kan man inte läsa från samma tabell som man vill uppdatera?
hittade precis detta i hjälpen för mysql 5
Currently, you cannot update a table and select from the same table in a subquery.
Hur ska jag då lösa det?
måste jag skapa en temporär tabell där jag lägger över placeringen i och sen flyttar den till min highscore-tabell?
T The_Hulk Medlem sedan juni 2003 1 837 inlägg Ska jag skapa en ny tråd med frågan eller hoppas på att någon som kan hjälpa mig hittar den här?
P Peter S Medlem sedan dec. 2002 5 483 inlägg