这是我的results
MySQL 表的示例:
我想将特定用户的所有日期向前移动相同的时间间隔,以便该用户的最高日期是当前时间戳。我知道如何以天为单位获得间隔:
/* result is 823 */
SELECT DATEDIFF(
CURDATE(),
(SELECT MAX(r.`LastReviewed`)
FROM `results` r
WHERE r.`UserID` = 1)
)
但我不知道如何在更大的查询中使用该信息,从而将日期向前移动。我试过了:
UPDATE `results` r
SET r.`LastReviewed` =
r.`LastReviewed` +
INTERVAL (
SELECT DATEDIFF(
CURDATE(),
(SELECT MAX(r.`LastReviewed`)
FROM `results` r
WHERE r.`UserID` = 1)
)
) DAY
WHERE r.`UserID` = 1
但这与以下错误有关:
错误代码 1093:您无法在 FROM 子句中指定目标表 'r' 进行更新
第二个问题是,即使它有效,如果它发生在接近一天结束时(晚上 11 点 59 分),它也会冒着将最大记录转移到未来的风险。我希望新的最大值是当前日期时间