【问题标题】:Selecting up-vote and down-vote totals using a boolean field使用布尔字段选择赞成票和反对票总数
【发布时间】:2012-06-07 15:53:59
【问题描述】:

我有一个包含字段user_idvotes 的表。 votes 字段要么是 1 赞成票,要么是 0 反对票。

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

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

【问题讨论】:

    标签: mysql group-by sum


    【解决方案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-12-15
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      • 2021-06-19
      • 2023-03-30
      • 2013-10-24
      相关资源
      最近更新 更多