2010-03-15 52 views
2

我有一張用於投票的mysql表。有idproject_idvote字段(如果某個特定項目被投票,則該字段爲1)。現在我想從這些條目中生成一個排名。有沒有辦法獲得每個project_id的投票數,並自動用一個項目的TRUE投票數與一個mysql查詢進行排序?或者你知道一個PHP的方式?MySQL按行數查詢順序?

例如

ID | Project ID | Vote 
----------------------- 
1 | 2   | 1 
2 | 2   | 1 
3 | 1   | 1 

==>

項目NR。 2有2票:

項目編號: 1 has 1投票

在此先感謝!

+1

是那裏的選票列的任何一點上,在計算project_id的出現次數應該給你的票數,除非有些人可以擁有加權票或否定票,這一列是多餘的? – plod 2010-03-15 19:56:16

回答

0

使用GROUP BY

SELECT project_id, SUM(vote) as votes 
FROM table 
GROUP BY project_id 
ORDER BY votes DESC 
3
Select project_id, Sum(vote) project_vote 
From votes 
Group By project_id 
Order By project_vote Desc 

GROUP BY可以讓你獲得每PROJECT_ID票數的總和,在ORDER BY DESC首先將其得票最高。

+0

哇,太快了。謝謝大家!我喜歡這個論壇:) – tronic 2010-03-15 19:50:20

5
SELECT 
    `project_id`, SUM(`vote`) AS vote_count 
FROM 
    `table_name` 
GROUP BY `project_id` 
ORDER BY vote_count DESC 

走樣SUM將幫助您以後找到在PHP列,如果你取一個關聯數組

0

試試這個:

SELECT 
    ProjectID,SUM(Vote) 
    FROM YourTable 
    GROUP BY ProjectID 
    ORDER BY Sum(Vote) DESC