簡體   English   中英

PHP MySQL查詢在過去24小時內最受歡迎

[英]PHP MySQL Query most popular in last 24 hours

假設我想在過去24小時內獲得MOST喜歡的十條記錄。 這是我到目前為止所擁有的:

$date = date("o-m-d");
$query = "SELECT date_created,COUNT(to),from,to FROM likes WHERE date_created LIKE '$date%' GROUP BY to ORDER BY COUNT(to) DESC LIMIT 10";

問題在於它只能從那一天獲得最喜歡的,無論它在那一天有多遠。 從過去的24小時開始,它並沒有得到最受歡迎。

喜歡的結構:來自| 到| date_created | ID

日期符合標准ISO時間 - 例如2010-07-14T00:35:31-04:00。 直接來自PHP參考:date(“c”);

WHERE date_created > DATE_SUB( NOW(), INTERVAL 24 HOUR)

如果date_created字段是datetime或timestamp字段類型,則可以在where子句中使用DATE_SUB,如下所示;


WHERE date_created > DATE_SUB(NOW(), INTERVAL 24 HOUR)

您應該使用日期/時間功能,而不是LIKE。

WHERE date_created >= (NOW() - INTERVAL 24 HOUR)

因此,首先應將date_created定義為具有default current timestamp 如果表中也有date_modified,則date_modified將具有on update current timestamp ,您可以定義創建為時間戳的日期和此觸發器來更新它

CREATE TRIGGER likes_date_entered
BEFORE INSERT ON likes
FOR EACH ROW SET NEW.date_created = NOW()

現在我們有了一個時間戳,您可以輕松地將一些mysql日期函數應用於該列。

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

我會留下為讀者做的練習,除非你說得很開心,並希望我給出確切的語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM