我一直在尝试使用相关子查询将表中所有行的日期更新11天。我遇到的一个问题是MySql不会让我更新我在子查询中选择的表。我能够通过将子查询的结果保存为临时表来解决这个问题。当我在子查询中为where子句定义了值时,这种方法有效。但是,当我尝试引用外部查询(即:vm.psname = v.psname)时,我在'where子句'中得到“unknown column'v.psname'这里是我的查询:
UPDATE cloud.vms v SET expirationdate=(
SELECT date FROM (
SELECT DATE_ADD(
(SELECT expirationdate
FROM cloud.vms vm
WHERE vm.psname=v.psname),
INTERVAL 11 DAY)
AS date)
AS tmptbl)
我还看过使用内连接(example from previous post)。但是,我不知道该怎么做。
答案 0 :(得分:1)
我没有尝试过,但为什么你不只是做DATE_ADD,就像这个
UPDATE cloud.vms set expirationdate = DATE_ADD(expirationdate, INTERVAL 11 DAY) ;