簡體   English   中英

Mysql:檢查用戶是否在過去14、60或120天未登錄

[英]Mysql: Check if user have not been logged in last 14, 60 or 120 days

嘗試構建系統來檢查用戶最近14天,60天或120天尚未登錄。 如果用戶未登錄14天,但我不想發送電子郵件,但我希望60到120天不能同時向該用戶發送電子郵件。

:user_counts今天的user_count中有超過80 000行。

:時間是Mysql中的DateTime

// Number of days a user have not been login
$dateCheck = array('14', '60', '120'); 

foreach ($dateCheck as $day) {        

   $userList = $wpdb->get_results('
    SELECT id, user_id 
    FROM user_counts 

    WHERE DATE(time) = "'.date("Y-m-d", strtotime("-".$day." day")).'"
      AND time != (
          SELECT MAX(time) FROM user_counts
          WHERE time < DATE_SUB(NOW(), INTERVAL '.$day.' DAY)
      )
    GROUP BY user_id
  ');

}

結果我在所有14,60和120天內都得到了相同的user_id。

// Number of days a user have not been login
$dateCheck = array('14', '60', '160'); 

$res = $wpdb->get_results('
    SELECT id, user_id, MAX(DATE(time)) as t 
    FROM user_counts      
    GROUP BY user_id
    HAVING t <= "'.date("Y-m-d", strtotime("-".min($dateCheck)." day")).'"
    ORDER BY t
');

rsort($dateCheck); 
foreach ($res as $result) {
    $date = date_create($res);

    foreach ($dateCheck as $day) {

        if ($result->t == date("Y-m-d", strtotime("-".$day." day"))) {

            // Send for exempel a mail
            // check witch email temple to use by using: $day 

        }
    }
}

暫無
暫無

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

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