sqlfile:中的所有结构表

UPDATE MenuPosition
         SET Position = (SELECT Position FROM MenuPosition WHERE MenuId ='2')
WHERE MenuId ='1'


当我们使用查询时,我们得到错误:

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


请告诉我我的错误在哪里以及如何解决?

最佳答案

对。那是MySQL的局限性。而是使用join

UPDATE MenuPosition mp cross join
       (SELECT Position FROM MenuPosition WHERE MenuId ='2'
       ) mp2
    SET mp.Position = mp2.Position
    WHERE MenuId = '1';

关于mysql - SQL您不能指定目标表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25234874/

10-13 08:57