php – 选择已投票但从不投票的用户

前端之家收集整理的这篇文章主要介绍了php – 选择已投票但从不投票的用户前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

所以,在我遇到这个想法之前,我认为我对MySQL非常擅长:

我有一个表用这些字段记录“投票”(恰当地命名为投票):

> id:投票的唯一ID.
> user:投票人的唯一用户ID
> item:他们投票的项目的ID
>投票:投票他们投票SET(‘上’,’下’)

现在,我正在尝试用sql方法来查找只有投票结果的用户.我知道一种方法查询表中的大部分数据之后在PHP中以程序方式编写它,但是当只有少数查询可以找到它时,这样做真的非常非常低效.

理想情况下,我希望我的结果只是一个有0个upvotes的用户列表(因为在表中意味着他们已经投票,所以他们只是downvote)可能是他们投下的downvotes的数量.

关于如何处理这个问题的任何想法?

最佳答案
SELECT user,SUM(IF(vote='down',1,0)) AS numDownVotes
FROM votes
GROUP BY user
HAVING SUM(IF(vote='up',0))=0   -- 0 upvotes
   AND SUM(IF(vote='down',0))>0 -- at least 1 downvotes

我不禁觉得有一个整洁的GROUP BY用户,投票的方式来做到这一点.

原文链接:https://www.f2er.com/mysql/432896.html

猜你在找的MySQL相关文章