1.mysql中You can’t specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。
    例如下面的语句就是错误的

    1. update projecttoday set projectAgree = ((
    2. SELECT projectAgree FROM projecttoday WHERE projectId = '4UP1ZgT'
    3. )+1) where projectId = '4UP1ZgT'

    应该先通过中间表再查询一遍之前查到的想要嵌套的数据,才能不出错。注意,这个问题只出现于mysql,mssql和oracle不会出现此问题。

    update projecttoday set projectAgree = ((
    select pa.projectAgree from(
    SELECT projectAgree FROM projecttoday WHERE projectId = '4UP1ZgT'
    ) pa
    )+1) where projectId = '4UP1ZgT'