Mysql update語句賦值嵌套select Java代碼 update a set col=(select col from a where id='5') where id>5 and id<10; www.2cto.com 報錯了 ERROR 1093 (HY000): You can't specify target table 'a' for update in FROM clause 發現是 mysql 定義update語句不能同時對同一張進行set 賦值操作,也就是說 update a 的時候 不能在後面select col from a ,如果是不同表操作是沒有問題的。 解決方法: 將select那裡的a的表起一個別名b 就可以解決這個問題 Java代碼 update a set col=(select col from (select * from a ) as b where id='5' )where id>5 and id <10;