场景是这样的
我有一条数据A,里面有一个description的字段,这个字段里面的值很长,我现在有另外的一条数据B,我想把数据A里description拷贝到数据B里面对应的字段,应该怎么实现?
我是这么写的:
update my_table set description=(select description from my_table where id=16) where id=17;
然后就报了一个错,
You can’t specify target table ‘lottery’ for update in FROM clause
查了这个问题之后才发现,mysql里面是不运行查出一个相同表的数据再改这个表。其他数据库不存在这个问题。
怎么办? 可以用绕一下的方式解决。
update my_table set description=(select description from (select activity_description from my_table where id=16) as b) where id=19;
发现没有,就只是多加了一层,查出来的结果,给个别名,再查一次,就可以update了