mysql A表某一个数据某一字段值复制给A表另一条数据对应字段

时间:2020-12-26 14:49:08

场景是这样的

我有一条数据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了