在我禁止他聊天之前,一个用户最多可以获取5个报告,当该用户的行达到5个报告时,我在该行中存储date
,并且我可以在一天后取消禁止他使用SQL data < DATE_SUB(NOW(), INTERVAL 1 DAY)
。
但是,如果他直到47:99小时才登录他们的帐户,就无法从聊天中“取消禁止”他,因为INTERVAL 1 DAY
无法正常工作。那么,如何使WHERE
子句匹配至少1天前或> = 1天前的行?有可能吗?
$link_id = $_SESSION['linkN'];
$deletReport = $conn->prepare("DELETE FROM `report_public_chat` WHERE `link_id` = :link_id AND `data` < DATE_SUB(NOW(), INTERVAL 1 DAY)");
$deletReport->bindParam(":link_id", $link_id, PDO::PARAM_INT);
$deletReport->execute();
答案 0 :(得分:3)
使用删除条件,例如
WHERE date >= now() - INTERVAL 1 DAY;
OR
WHERE timediff(now(), my_datetime_field) < '24:00:00'
答案 1 :(得分:0)
您可以尝试以下操作-使用DATE_SUB(NOW(), INTERVAL 24 hours)
DELETE FROM `report_public_chat` WHERE `link_id` = :link_id AND `data` >= DATE_SUB(NOW(), INTERVAL 24 hours) and `data`<NOW()