簡體   English   中英

MySQL每天在一天中增加一次行值,如果第二天則重置

[英]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.

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