我在 MySQL 数据库表中有一堆行,最后一次修改时记录了last_update (TIMESTAMP) 字段。截至目前,我每 300 秒循环遍历所有行并检查是否已经过去了 3 多个小时,如果是,则更新该行。
$update_delay = 180;
$table_name = $wpdb->prefix . "products";
$results = $wpdb->get_results( "SELECT id, prod_id, last_update FROM $table_name" );
foreach ($results as $result)
{
$last_update = $result->last_update;
if (time() - strtotime($last_update) > $update_delay * 60)
{
由于这效率低下,我想只查询时间戳超过 3 小时的行。由于该字段的格式为“2020-03-01 23:22:06”,我想我可以执行以下操作,但不确定是否可以在查询中使用 INTERVAL 执行此操作,或者是否可以检查日期反对应该在PHP中。
$old_timestamp = date('Y-m-d G:i:s') . "- 3 hours";
$results = $wpdb->get_results( "SELECT id, prod_id FROM $table_name WHERE last_update > $old_timestamp" );
什么是有效实施这一点的好选择?
鸿蒙传说
交互式爱情