[英]MySQL increment a row value once a day on that day then reset if next day
我正在編寫一個新項目,並且如果該行在當天運行(例如07-03-2019
,則希望使數據庫行值traffic
增加一次,然后在第二天點擊並執行時將其重置為0。 有沒有簡單的方法可以做到這一點?
看一下我的代碼。
我已經搜索了好幾天,每次滾動到第二天,它都會將流量的當前值增加到昨天的值之上,而不是重置為零。
//Current date
$date = date("Y-m-d");
$sqlQuery ="
UPDATE users
SET traffic = traffic + 1
WHERE datestamp = '$date'";
$result = $conn->query($sqlQuery );
我希望如果在今天的日期執行流量,則流量會增加1,如果今天不在,則第二天流量會變為零。
如何在第二天將其重置為0? 我不知道從哪里開始。 增量有效,不能重設。
您可以使用CASE
表達式來計算值:
UPDATE users
SET traffic = CASE datestamp
WHEN CURDATE() THEN traffic + 1
ELSE 0
END
WHERE datestamp IN (CURDATE(), DATE_ADD(CURDATE(), INTERVAL 1 DAY)
因此,如果您在2019-07-03上運行此命令,它將增加該日期的訪問量,並將2019-07-04的訪問量設置為0。在2019-07-04上運行時,它將增加該日期,並將2019-07-05設置為0。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.