2013-11-04 109 views
1

我有一個條目,用戶每天可以投票一次。我將它保存在我的數據庫中。
現在我需要檢查一下,如果用戶被允許再次對此條目投票(在一天之後)。Mysql - 每天投票一次

到目前爲止,我得到這個:

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

但是,這並不工作,那麼,當在數據庫中存在針對選民和pid多個條目。選民可以爲同一個條目投票多次。
如果對於同一用戶和同一項目有更多條目,則計數(*)使我的值超過1.等等。

如何檢查用戶是否允許再次正確投票?
謝謝。

+0

搜索datediff()函數 – wxyz

+0

是的,但我需要檢查它的最新條目,或不? – Marek123

+0

在一天之後,你的意思是24小時還是第二天,也就是說他們可以在晚上11點然後上午2點投票 – Fredd

回答

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)上的複合索引。