解决方案 »

  1.   


    表一 a
    id user rank exp addtime expchange
    1 a 1 11  今天 1 a 1 9 昨天
    结果 id user rank exp addtime expchange
    1 a 1 11  今天 2sql怎么写?
      

  2.   


    update a set expchange=(select exp from a where addtime=昨天) where id=1  
    这样吗? 
    如果一次更新二三百条,数据记录多了,效率哪个更高?
      

  3.   

    update a set expchange=(select exp from a where addtime=昨天) where id=1  整个语句有两个查询部分。一。 检查一下 select * from a where id=1  的效率,这个查询返回多少记录? 效率如何,是否需要添加索引,或者已经利用了索引。二。 检查 select exp from a where addtime=昨天 and a.kwid =b.kwid and a.user=b.user, 显然这儿的语句楼主没兴趣写完整,这样别人也无关帮你做准确的分析了。
      

  4.   


    报错  
    #1093 - You can't specify target table 'a' for update in FROM clause
    我才想那么做的,update 和select 的 表是一个会报错 或者是我写的不对
    UPDATE `a` SET `expchange`=(select `exp` from `a` as b where a.user = b.user and addtime=昨天 )-exp WHERE a.addtime=今天