2012-08-16 61 views
1
UPDATE reservation SET flag = "1" WHERE ipAddress = (SELECT ipAddress FROM reservation WHERE endDate < CURRENT_TIMESTAMP); 

我試圖使用此查詢來更改其日期已過期的預留表中那些條目的標誌列。標誌列默認爲0.所以即時通訊設法將我的身份證更改過期一次。以選擇爲條件的mysql更新查詢

我得到以下錯誤。如果您使用的是子選擇同一個表

ERROR 1093 (HY000): You can't specify target table 'reservation' for updatein FROM clause 

有人可以建議一個解決這個問題..

回答

3

,你也許可以完全忽略的子查詢中。 你爲什麼不使用下面的代替

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

哦,我只是想讓事情變得複雜!非常感謝 :) – Bala 2012-08-16 10:21:39

3

你不需要內SELECT。你只需要更新狀態基於endDate

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