使用布尔字段选择向上投票和向下投票总计

时间:2012-06-07 07:27:10

标签: mysql group-by sum

我的表格包含字段user_idvotesvotes字段可以是1进行投票,也可以0进行投票。

我想要做的是在特定用户的一个查询中显示总票数和总票数。

我以为我可能会以某种方式使用GROUP BY来实现这一目标,但我不知道我是否能以某种方式使用SUM函数?

1 个答案:

答案 0 :(得分:1)

只有你想要多个用户的投票数时,才需要{p> GROUP BY;对于单个用户,只需指定WHERE子句:

SELECT SUM(votes=1) AS upvotes, SUM(votes=0) AS downvotes
FROM   my_table
WHERE  user_id = ?

顺便说一下,您可能需要考虑将downvotes存储为-1(而不是0),以便可以轻松地将净投票计数计算为SUM(votes)。< / p>