是段更新 一个字段的同时,往另一个字段里加相同的值
 UPDATE BARGAIN SET BARGAIN_STATE = '5',
BARGAIN_HAVE = ( SELECT BARGAIN_HAVE
FROM BARGAIN
WHERE BARGAIN_ID =97 ) + '5', BARGAIN_PAY_MODE = '1', ADMIN_ID = 'admin'
WHERE BARGAIN_ID = '97' #1093 - You can't specify target table 'BARGAIN' for update in FROM clause 
是想各更新BARGAIN_STATE字段的时候,往BARGAIN_HAVE里加值,没次更新,都把更新的值加进BARGAIN_HAVE字段
如上面,BARGAIN_STATE字段更新为5后,往BARGAIN_HAVE里加5,然后BARGAIN_STATE字段更新为6时,BARGAIN_HAVE里再加个6,这时BARGAIN_HAVE里就有5和6两个值了,这要择么做到?

解决方案 »

  1.   

    try
    ----------------------------------------------
    UPDATE BARGAIN SET BARGAIN_STATE = '5',
    BARGAIN_HAVE = ( (SELECT BARGAIN_HAVE
    FROM BARGAIN
    WHERE BARGAIN_ID =97) t ) + '5', BARGAIN_PAY_MODE = '1', ADMIN_ID = 'admin'
    WHERE BARGAIN_ID = '97' 
      

  2.   

    WHERE BARGAIN_ID =97) t ) + '5', BARGAIN_PAY_MODE = '1', ADMIN_ID = 'admin' ?中间那个t是干吗用的?
      

  3.   

    执行
    UPDATE BARGAIN SET BARGAIN_STATE = '5',
    BARGAIN_HAVE = ( (SELECT BARGAIN_HAVE
    FROM BARGAIN
    WHERE BARGAIN_ID =97) t ) + '5', BARGAIN_PAY_MODE = '1', ADMIN_ID = 'admin'
    WHERE BARGAIN_ID = '97'会报#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't ) + '5', BARGAIN_PAY_MODE = '1', ADMIN_ID = 'admin'
    WHERE BAR 
    这个错误