0

user_idフィールドと。を含むテーブルがありますvotes。このvotesフィールドは、1賛成票または反対票のいずれかです0

私がやりたいのは、特定のユーザーの1つのクエリに合計賛成票と合計反対票を表示することです。

なんとかしてこれを実現できるのではないかと思っていたのですが、どういうわけか関数GROUP BYで使えるのかわかりません。SUM

4

1 に答える 1

1

GROUP BY複数のユーザーの投票数が必要な場合にのみ必要になります。1人のユーザーの場合、WHERE句を指定するだけで済みます。

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

余談ですが、正味の投票数を簡単に計算できるように、反対票を-1(ではなく)として保存することを検討することをお勧めします。0SUM(votes)

于 2012-06-07T07:28:50.360 に答える