表一 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怎么写?
update a set expchange=(select exp from a where addtime=昨天) where id=1 这样吗? 如果一次更新二三百条,数据记录多了,效率哪个更高?
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, 显然这儿的语句楼主没兴趣写完整,这样别人也无关帮你做准确的分析了。
报错 #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=今天
表一 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怎么写?
update a set expchange=(select exp from a where addtime=昨天) where id=1
这样吗?
如果一次更新二三百条,数据记录多了,效率哪个更高?
报错
#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=今天