mysql 出现You can't specify target table for update in FROM clause错误的解决方法

mysql出现You can’t specify target table for update in FROM clause 这个错误的意思是不能在同一个sql语句中,先select同一个表的某些值,然后再update这个表。(不是同一个表可以)

然后执行将每个用户第一条消息的内容更新为Hello World

 

 

因为在同一个sql语句中,先select出message表中每个用户消息的最小id值,然后再更新message表,因此会出现 ERROR 1093 (HY000): You can’t specify target table ‘message’ for update in FROM clause 这个错误。

 

 解决方法:select的结果再通过一个中间表select多一次,就可以避免这个错误(包括delete也不行)

where条件后修改

 

 

 

 

 

注意,只有mysql会有这个问题,mssql与oracle都没有这个问题。

————————————————
版权声明:本文为CSDN博主「傲雪星枫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fdipzone/article/details/52695371

posted @ 2022-01-17 13:20  LZ太热  阅读(691)  评论(0编辑  收藏  举报