2010-01-23 56 views
1

我在我的網站上有一個功能,用戶可以在其上對照片進行投票。每次有人點擊投票按鈕,我的腳本在表中添加一行(mysql)。計數表中的前10個輸入

每一行看起來是這樣的:(表名=喜歡)

ID --------- --------- userId的--------- photoName日期

1 ----------- 21 -------------- 34234 ----------- 20100101

如何我能找到人們投票的前10張照片嗎? 我試過 「SELECT TOP 10 photoName FROM喜歡」,但沒有工作......

+0

@Haljan:您可以對您喜歡的答案進行回答。一旦你的問題解決了,接受最好的一個。 – 2010-01-23 11:33:10

+0

@彼得 - 他不是在問一個元問題:) – 2010-01-23 12:01:24

+0

@Yuval答:當然:)上調/接受沒有錯,雖然? – 2010-01-23 12:16:43

回答

3
SELECT 
    COUNT(*) as points, 
    photoName 
FROM likes 
GROUP BY photoName 
ORDER BY points DESC 
LIMIT 10; 
+0

太好了。感謝你們倆 – Haljan 2010-01-23 11:22:03

1

你將不得不使用一些countgroup by;這樣的事情應該有所幫助:

select photoName, count(*) as nbLikes 
from likes 
group by photoName 
order by count(*) desc 
limit 0, 10 

即你group by photoName,你算多少次,每次照片已經很喜歡 - 和order by這個數字在desc順序,以獲得最喜歡的;最後,您使用limit僅提取10條第一行。