Владимир Asked:2020-04-28 03:48:27 +0800 CST2020-04-28 03:48:27 +0800 CST 2020-04-28 03:48:27 +0800 CST sql查询中的算术运算 772 如果更改后超过 3 天,则需要更新数据库中的信息。该字段last_edit包含 UNIX 格式的时间。我这样做: $last_edit = 259200; // 3 суток $this_time = time() - $last_edit; // сколько прошло $db->query( "UPDATE tablename set status = '0' WHERE last_edit >= ({$this_time} - last_edit) AND revision = '1'" ); 因此,数据是不断变化的。 mysql 1 个回答 Voted Best Answer Anton Shchyrov 2020-04-28T03:56:35+08:002020-04-28T03:56:35+08:00 合乎逻辑的 last_edit >= ({$this_time} - last_edit) 2 * last_edit >= $this_time 任何更新日期乘以 2 都将大于当前日期。 一定是 UPDATE tablename set status = 0 WHERE last_edit <= {$this_time} AND revision = 1 $this_time更好的是,完全删除变量 UPDATE tablename set status = 0 WHERE last_edit <= NOW() - 3600 * 24 * 3 AND revision = 1 PS并且您不需要在查询中将数字括在引号中
合乎逻辑的
任何更新日期乘以 2 都将大于当前日期。
一定是
$this_time
更好的是,完全删除变量PS并且您不需要在查询中将数字括在引号中