2009-10-17 26 views
0

我在表中決定不再記錄開始和結束時間,而只是開始時間和持續時間(以分鐘爲單位)。如何更新我的表,以便我的新列根據現有數據插入值?下面我嘗試產生了錯誤:相關的子查詢更新

You can't specify target table 'lesson' for update in FROM clause

UPDATE lesson 
SET duration = 
    (SELECT TIME_TO_SEC(TIMEDIFF(finish_time,start_time))/60 
    FROM lesson AS l 
    WHERE l.id = lesson.id) 

回答

4

你不必這樣做,因爲你與其他列的值在同一行中更新列,只做:

UPDATE lesson 
SET duration = TIME_TO_SEC(TIMEDIFF(finish_time,start_time))/60 
+0

D'哦 - 現在看起來非常明顯! – Robert 2009-10-17 12:10:31