我正在尝试删除表中的所有行,除了具有最大revision_id
值的行,同时从同一个表中选择数据:
delete from
node_revision__body
where
entity_id=4
and revision_id not in (
select
max(revision_id)
from
node_revision__body
where
entity_id=4
)
这会引发错误
不能在FROM子句中指定要更新的目标表'node_revision__body'
是否有可能以某种方式更改查询以达到目标?
1条答案
按热度按时间5lhxktic1#
这是MySql的一个documented“特性”,您不能更新您从中选择的同一个表,但是存在一些变通方法,例如,您可以尝试将查询嵌套得更深一层:
参见working demo