[英]How to count UP votes together and then select from database ORDER by UP votes
我的網站上有投票系統,它將每個用戶的投票存儲在名為skmp_voting的表中,該數據庫中的每個記錄都有id , item_id (這是用戶投票的文章ID)和vote_value 。 如果用戶投票否定值為“ -1”,則vote_value取決於用戶的操作。
我有toparticles.php頁面,在這里我不會顯示熱門文章,因此那些文章的投票最多。 這是我的mysql查詢以獲得我現在擁有的熱門文章:
SELECT stories.*, skmp_votes.vote_value FROM stories
JOIN skmp_votes ON stories.id = skmp_votes.item_id
ORDER BY skmp_votes.vote_value DESC
它從稱為故事的其他表中選擇文章信息,並將其與skmp_votes表中的表決值相對 。
我非常有信心這是不對的,因為它選擇的表決值等於1或類似的值,所以我需要以某種方式將所有表決值相加,然后使用mysql查詢來獲得熱門文章。
這取決於您的投票表。 正如我想象的那樣,每次投票都有一行。 在這種情況下,您必須為與文章匹配的票數求和。 即
SELECT SUM(vote_value) as 'total_votes' FROM skmp_voting WHERE item_id='$article_id';
您使用SUM
而不是COUNT
您要從否定票中減去該值。
編輯:補充答案
以下查詢將為您提供每篇文章及其總投票,按總投票排序(頂部投票最多的文章)
SELECT stories.*, SUM(skmp_votes.vote_value) as 'total_votes' FROM stories
JOIN skmp_votes ON stories.id = skmp_votes.item_id
ORDER BY skmp_votes.total_votes DESC
要獲得5個投票最多的文章,只需在末尾添加LIMIT 5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.