PHP:根据跨表的值在 15 分钟后删除记录
PHP: Delete records after 15 minutes based on values across different tables
我创建了一个页面来预订图书馆的房间。每当用户过来拿钥匙时,其条目的 "checked-out" 列就会更新为“1”。用户最多可以迟到 15 分钟。 15 分钟后预订将被删除,以便其他用户可以预订房间。
table room_reservation
有一个名为 reservation_id
的列。此列中的数字用于另外两个 table。持续时间、预订所有者和一些其他信息存储在此 table.
table reservation_checked_out
的列 checked_out
(默认情况下 0
)保持值 0 或 1。另一列是 entity_id
,其中存储钥匙已签出的预订信息。此 table 中的 Entity_id
与 table room_reservation
中的 reservation_id
匹配。
table reservation_datetime
保留在 reservation_datetime_value
栏中,表示何时进行预订,entity_id
栏中保留。再次说明:此 table 中的 entity_id
与 table room_reservation
.
中的 reservation_id
匹配
如果密钥未在 table reservation_checked_out.checked_out
中签出,但预订在 15 分钟前开始于 [,我如何删除 table room_reservation
中的预订=42=] reservation_datetime.reservation_datetime_value
?
关于如何使这项工作有任何想法吗?
试试这个 SQL 查询:
DELETE r.* FROM `room_reservation` r INNER JOIN `reservation_checked_out` c ON (c.entity_id = r.reservation_id), `reservation_datetime` d ON (d.entity_id = r.reservation_id) WHERE c.checked_out = 0 AND d.reservation_datetime_value <= NOW() - INTERVAL 15 MINUTE;
您可以通过 PHP 使用 cron 作业执行此操作。
我创建了一个页面来预订图书馆的房间。每当用户过来拿钥匙时,其条目的 "checked-out" 列就会更新为“1”。用户最多可以迟到 15 分钟。 15 分钟后预订将被删除,以便其他用户可以预订房间。
table room_reservation
有一个名为 reservation_id
的列。此列中的数字用于另外两个 table。持续时间、预订所有者和一些其他信息存储在此 table.
table reservation_checked_out
的列 checked_out
(默认情况下 0
)保持值 0 或 1。另一列是 entity_id
,其中存储钥匙已签出的预订信息。此 table 中的 Entity_id
与 table room_reservation
中的 reservation_id
匹配。
table reservation_datetime
保留在 reservation_datetime_value
栏中,表示何时进行预订,entity_id
栏中保留。再次说明:此 table 中的 entity_id
与 table room_reservation
.
reservation_id
匹配
如果密钥未在 table reservation_checked_out.checked_out
中签出,但预订在 15 分钟前开始于 [,我如何删除 table room_reservation
中的预订=42=] reservation_datetime.reservation_datetime_value
?
关于如何使这项工作有任何想法吗?
试试这个 SQL 查询:
DELETE r.* FROM `room_reservation` r INNER JOIN `reservation_checked_out` c ON (c.entity_id = r.reservation_id), `reservation_datetime` d ON (d.entity_id = r.reservation_id) WHERE c.checked_out = 0 AND d.reservation_datetime_value <= NOW() - INTERVAL 15 MINUTE;
您可以通过 PHP 使用 cron 作业执行此操作。