[英]Mysql error - you can't specify target table 'tbl_writerremark' for update in FROM clause
我有這個查詢:
UPDATE tbl_writerremark SET status='no' WHERE id=(SELECT max(id) FROM tbl_writerremark WHERE wid=18)
我收到此錯誤:
"you can't specify target table 'tbl_writerremark' for update in FROM clause"
誰能幫我解決這個問題。
嘗試這個 -
UPDATE tbl_writerremark SET status='no' WHERE id=(select * from (SELECT max(id) FROM tbl_writerremark WHERE wid=18) as t)
這應該工作-
UPDATE tbl_writerremark SET status='no' WHERE id=(SELECT max(id) FROM (select * from tbl_writerremark) as temp_ WHERE wid=18)
在MySql更新和插入中,您不能引用要在子查詢中修改的表。
在MySQL中,您不能修改在SELECT部分中使用的同一表。 在http://dev.mysql.com/doc/refman/5.6/en/update.html中記錄了此行為。
您將需要停止使用嵌套子查詢並分兩部分執行操作,或者使用簡單的where子句。
您可以使用此查詢,但是由於多種原因,它很丑陋,包括性能:
UPDATE tbl_writerremark SET status='no' WHERE id=(select * from (SELECT max(id) FROM tbl_writerremark WHERE wid=18) as temp_max)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.