0
比方說,我有這個表:確定每行的排名中排序表
ID Score
1 345
2 5
3 76
4 45
5 85
6 175
7 209
,這是我的查詢:
SELECT * FROM posts ORDER BY Score DESC
我如何獲得的排名/位置每排排?
比方說,我有這個表:確定每行的排名中排序表
ID Score
1 345
2 5
3 76
4 45
5 85
6 175
7 209
,這是我的查詢:
SELECT * FROM posts ORDER BY Score DESC
我如何獲得的排名/位置每排排?
您可以使用連接到上面這樣像@OMG小馬的技術:
SELECT posts.*, @row:[email protected]+1 as 'rank' FROM posts, (SELECT @row:=0) r ORDER BY posts.Score DESC
如果您運行下面的代碼,你會看到新的列Position
這是相同Rank
SELECT ID, Score,
(SELECT COUNT(distinct u2.Score) FROM myTable u2
WHERE
u2.Score > u1.Score) + 1 AS position FROM myTable u1
ORDER BY position
讓我知道如果您有任何疑問...
^但我會迭代的結果(沒有where語句),而不是隻關注單行。 – Michelle 2012-02-19 04:51:49
這意味着我沒有選擇一行,我選擇了所有的行。 – Michelle 2012-02-19 04:54:45
如果你用某種語言迭代結果,你當然可以追蹤那裏的排名嗎?如果數據庫是短暫的,並且僅在您查詢時適用,則不需要將數據庫提供給您。 – 2012-02-19 04:56:55