一个用户最多可以得到5份报告,然后我禁止他聊天1天,当这个用户的行达到5份报告时,我会在行上存储一个date,我可以在1天后用sqldata < 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();

最佳答案

使用删除条件,如

WHERE date >= now() - INTERVAL 1 DAY;

或者
WHERE timediff(now(), my_datetime_field) < '24:00:00'

09-26 20:45