Mysql - 每天投票一次

时间:2013-11-04 17:35:27

标签: php mysql

我有一个条目,用户每天可以投票一次。我将它保存在我的数据库中 现在我需要检查,是否允许用户再次对此条目进行投票(一天后)。

到目前为止,我得到了这个:

SELECT count(*) 
FROM entries e
WHERE e.voterID =1
AND e.pID =1
AND e.date < NOW( ) - INTERVAL 1 
DAY   

但这并不好用,在数据库中有更多的选民和pid条目。选民可以对同一条目投票倍数   如果同一个用户和相同项目有更多条目,则count(*)五是一个超过1的值。等等。

如何检查用户是否可以再次正确投票? 感谢。

1 个答案:

答案 0 :(得分:0)

目前的用户是否在最近的24小时内投票支持目前的pID?如果是这样,此查询中的votecount结果将大于零。

 SELECT count(*) AS votecount
   FROM entries AS e
  WHERE e.voterID = 1
    AND e.pID = 1
    AND e.date >= NOW() - INTERVAL 1 DAY

注意日期的>=比较。您的示例代码显示为<

当您需要此查询在大型表上高效运行时,您将需要一个复合索引(voterID,pID,date)。