Mysql 错误 - 您无法在 FROM 子句中指定要更新的目标表"tbl_writerremark"



我有此查询:

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 max(id) FROM (select * from tbl_writerremark) as temp_ WHERE wid=18)

在MySQL更新和插入中,您无法引用您在子查询中修改的同一表。

在MySQL中,您无法修改选择部分中使用的同一表。此行为记录在:http://dev.mysql.com/doc/refman/5.6/en/update.html

您将需要停止使用嵌套子查询并分为两个部分执行操作,或者使用简单的子句。

您可以使用此查询,但由于多种原因,它很难看,包括性能:

UPDATE tbl_writerremark SET status='no' WHERE id=(select * from (SELECT max(id) FROM tbl_writerremark WHERE wid=18) as temp_max)

尝试这个 -

UPDATE tbl_writerremark SET status='no' WHERE id=(select * from (SELECT max(id) FROM tbl_writerremark WHERE wid=18) as t)

最新更新