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 @   LZ太热  阅读(886)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示