2013-10-03 41 views
2

我建立我的排名使用這樣的查詢行位置:查詢,其中包含另一個查詢(居)

SELECT * FROM users ORDER BY fame DESC; 

我在行循環遞增一個變量計數位置

我想將排名位置添加到我的個人資料子頁面,而無需首先獲取所有排名。

我沒想過兩個查詢,但我不知道如何達致這...

+1

不確定這是什麼意思,「沒有先取得所有的排名」。 但是你可以使用Rank()函數而不是增加一個變量 – cjava

+0

我想你應該使用'SQL COUNT()'函數並且可能查看'SQL RANK'。 你應該真的讓SQL返回你想要首先顯示的數據。 http://technet.microsoft.com/en-us/library/ms176102.aspx http://technet.microsoft.com/en-us/library/ms175997.aspx –

+0

@SecretSquirrel:MySQL不支持窗口函數('rank()') –

回答

0

嘗試這樣的事情。

SELECT 
@rownr := @rownr + 1 AS row_number, 
users.* 
FROM users 
JOIN (SELECT @rownr := 0) r 
ORDER BY fame DESC; 
+0

我可以更新所有的行,像row_number填充列? – Kacper

+0

你是什麼意思? –

+0

我的意思是類似的「更新」查詢,將行號保存爲 – Kacper