MySQL执行更新语句报错:

更新语句:UPDATE test SET state=50 WHERE num IN(SELECT num FROM test WHERE state=60);

报错:ERROR 1093 (HY000): You can't specify target table 'test' for update in FROM clause

表数据:

state num
50 101
50 102
50 201
60 202
60 203

解决方式:同表不支持 update子查询结果,将子查询结果,再select一次,就可以了

改成:UPDATE test SET state=50 WHERE num IN(SELECT * FROM (SELECT num FROM test WHERE state=60));

相关文章:

  • 2022-12-23
  • 2021-12-30
  • 2021-10-24
  • 2021-05-20
  • 2022-01-12
  • 2021-09-12
  • 2022-12-23
猜你喜欢
  • 2021-06-28
  • 2021-06-20
  • 2022-01-08
  • 2022-01-19
  • 2022-12-23
  • 2022-12-23
  • 2021-08-23
相关资源
相似解决方案