MySQL порядок запросов по количеству строк? - PullRequest
2 голосов
/ 15 марта 2010

У меня есть таблица mysql для голосов. есть поля id, project_id и vote (которое равно 1, если за конкретный проект проголосовали). Теперь я хочу создать рейтинг из этих записей. Есть ли способ получить количество голосов для каждого project_id и автоматически отсортировать записи по количеству ИСТИННЫХ голосов проекта с помощью одного запроса MySQL? Или вы знаете способ php?

, например

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

==>

Проект №. 2 имеет 2 голосов

№ проекта 1 имеет 1 голос

Заранее спасибо!

Ответы [ 4 ]

5 голосов
/ 15 марта 2010
SELECT 
   `project_id`, SUM(`vote`) AS vote_count 
FROM 
   `table_name` 
GROUP BY `project_id`
ORDER BY vote_count DESC

псевдоним SUM поможет вам найти столбец в php позже, если вы выберете ассоциативный массив

3 голосов
/ 15 марта 2010
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 голосов
/ 15 марта 2010

попробуйте это:

SELECT 
    ProjectID,SUM(Vote) 
    FROM YourTable 
    GROUP BY ProjectID 
    ORDER BY Sum(Vote) DESC
0 голосов
/ 15 марта 2010

Использование GROUP BY:

SELECT project_id, SUM(vote) as votes 
FROM table 
GROUP BY project_id 
ORDER BY votes DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...