2010-03-15 77 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