2011-08-21 3 views
1

J'ai une table (en MySQL) qui stocke les votes. La structure est comme suit:Liste des meilleurs éléments basés sur UserVotes

id INT(11) 
post_id INT(11) 
vote_value INT(11) 
created DATETIME 

Maintenant, vote_value peut être un nombre entier quelconque, par exemple 12, -17 pour un post. Le résultat vote sera 12 + (-17) = -5 pour le poste. Ce que j'essaie de faire, c'est de trier les messages par les votes qui en résultent. Est-ce possible? Si oui, l'aide est très appréciée.

NOTE Je suis en mesure d'obtenir le plus voté articles par

SELECT post_id, COUNT(post_id) AS Count FROM my_table GROUP BY post_id ORDER BY Count DESC LIMIT 0,5 

Cela me donne top 5 plus votés messages. c'est-à-dire qu'il sélectionne ces publications avec le plus grand nombre d'occurrences. Mais j'essaie de les trier par votes résultants. J'espère que cela semble clair.

Répondre

2

SELECT post_id, SUM (post_id) AS Votes DU GROUPE PAR ORDRE my_table post_id par votes DESC LIMIT 0,5

Je ne suis pas un utilisateur de MySQL et donc la fonction somme mon tort.

+0

Je suppose que vous vouliez dire 'SELECT post_id, SUM (vote_value) AS Votes FROM my_table GROUPE BY post_id ORDER BY Votes DESC LIMIT 0,5' Et cela a fonctionné parfaitement! Merci! – abhisek

Questions connexes