选择在过去60天内没有购买的客户端-php

选择在过去60天内没有购买的客户端-php,php,Php,我有一个这样的数据库锁: 电子邮件/订单日期 client1@gmail.com 13-02-2018 client2@gmail.com 02-02-2018 client3@gmail.com 24-01-2019 client3@gmail.com 24-06-2018 client3@gmail.com 24-04-2018 我必须选择过去60天内没有购买的客户电子邮件 例如client3@gmail.com有3个订单,2个在60天之前,一个在过去60天,所以我必须排除这个客户。我必须

我有一个这样的数据库锁:

电子邮件/订单日期

client1@gmail.com 13-02-2018
client2@gmail.com 02-02-2018
client3@gmail.com 24-01-2019
client3@gmail.com 24-06-2018
client3@gmail.com 24-04-2018
我必须选择过去60天内没有购买的客户电子邮件

例如client3@gmail.com有3个订单,2个在60天之前,一个在过去60天,所以我必须排除这个客户。我必须提取过去60天没有购买的客户

$time60days = date('d-m-Y', strtotime(date('d-m-Y')) - 60*60*24*60);
$sql = "SELECT * FROM `email` ORDER BY `email`.`email` ASC ";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    $h=0;
    while($row = $result->fetch_assoc()) {
         $zi=$row["created_at"];
         if(strtotime($zi) < strtotime($time60days)) {
            echo "id: " . $row["order_id"]. " - Email: " . $row["email"]. " " . $row["created_at"]. "<br>";

           }
            $h++;
    }
} else {
    echo "0 results";
}
echo $h;
$conn->close();
我必须只提取客户端1和2,而不是3。

您可以尝试使用MySQL DATEDIFF


为什么不在sql?中为日期添加where子句?这是否也会选择client3,因为他有一个较旧的订单?为什么不在sql中使用datediff?首先筛选出过去最大日期小于60天的记录。所有这些都可以——也应该——通过SQL而不是PHP来完成。类似于——选择电子邮件,通过电子邮件从表组中以last_date>60天的方式创建maxcreated_at as last_date。
SELECT email,MAX(order_date) FROM your_tbl_name GROUP BY email HAVING DATEDIFF(CURDATE(), order_date) >= 60 ORDER BY email ASC