UPDATE reservation SET flag = "1" WHERE ipAddress = (SELECT ipAddress FROM reservation WHERE endDate < CURRENT_TIMESTAMP);

我试图使用此查询更改保留表中日期已过期的条目的标志列。默认情况下,标志列为0。所以我想把过期一次改成一次作为我的身份证明。
我得到以下错误。
ERROR 1093 (HY000): You can't specify target table 'reservation' for updatein FROM clause

有人能提出解决这个问题的办法吗。。

最佳答案

如果在子选择中使用相同的表,则可能会完全忽略子选择。
你为什么不用下面的

UPDATE reservation
SET flag = "1"
WHERE endDate < CURRENT_TIMESTAMP

关于mysql - 使用select作为条件的mysql更新查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11984874/

10-09 22:01