0

我有一个带有字段user_idvotes. 该votes字段要么1是赞成票,要么0是反对票。

我想做的是在一个查询中为特定用户显示总赞成票和总反对票。

我在想我也许可以用GROUP BY某种方式来实现这一点,但我不知道我是否可以以SUM某种方式将它与函数一起使用?

4

1 回答 1

1

GROUP BY仅当您想要多个用户的投票计数时才需要;对于单个用户,只需指定一个WHERE子句:

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

顺便说一句,您可能需要考虑将反对票存储为-1(而不是0),以便可以轻松地将净投票数计算为SUM(votes).

于 2012-06-07T07:28:50.360 回答