DELETE FROM mytable WHERE id IN (SELECT id FROM mytable where roll=1)
我有一個表mytable
。我上面的查詢是拋出一個錯誤。Mysql發生錯誤
您不能指定目標表「MYTABLE」的更新在FROM子句
DELETE FROM mytable WHERE id IN (SELECT id FROM mytable where roll=1)
我有一個表mytable
。我上面的查詢是拋出一個錯誤。Mysql發生錯誤
您不能指定目標表「MYTABLE」的更新在FROM子句
目前,您無法從表中刪除,並在子查詢中從同一個表中選擇。
幸運的是,您不需要子查詢。只要這樣做:
DELETE FROM mytable WHERE roll=1
它更短,更清晰啓動。
爲什麼你不這樣做?
DELETE FROM mytable WHERE roll=1
你爲什麼不只是寫
DELETE FROM mytable WHERE roll=1
? 發生該錯誤的原因是,當上級查詢修改相同的表時,MySql不喜歡它在子查詢中獲取表格。
爲什麼不乾脆:
DELETE FROM mytable WHERE roll=1
你爲什麼要使用子查詢?你可以這樣寫:
DELETE FROM mytable WHERE where roll=1;