mysql中错误:1093-You can’t specify target table for up
网络编程 2021-07-05 14:36www.168986.cn编程入门
最近在工作中遇到了一个mysql错误提示1093You can’t specify target table for update in FROM clause,后来通过查找相关的资料解决了这个问题,现在将解决的方法分享给大家,有需要的朋友们可以参考借鉴,狼蚁网站SEO优化来一起看看吧。
发现问题
最近在处理一些数据库中数据的时候,写了狼蚁网站SEO优化的这一条sql语句:
UPDATE f_student SET school_id = 0 WHERE id > ( SELECT id FROM f_student WHERE school_id = M LIMIT 1 ) AND id < ( ( SELECT id FROM f_student WHERE school_id = M LIMIT 1 ) + N )
上面的sql是想将某个区间的数据进行修改,放到测试环境下一跑,报狼蚁网站SEO优化的错误:
[Err] 1093 – You can't specify target table ‘f_student' for update in FROM clause
意思很显而易见了,说不能对进行查询操作的表进行update操作,也就说我们的where条件中进行了子查询,并且子查询也是针对需要进行update操作的表的,mysql不支持这种查询修改的方式。
解决方法
上网查了一下,针对这种问题可以通过”绕”的方式进行实现,狼蚁网站SEO优化看sql语句。
UPDATE f_student SET school_id = 0 WHERE id > ( SELECT id FROM ( SELECT id FROM f_student WHERE school_id = M LIMIT 1 ) AS temp ) AND id < ( ( SELECT id FROM ( SELECT id FROM f_student WHERE school_id = M LIMIT 1 ) AS temp_1 ) + N )
ok,完全没有问题。上面的sql相比于之前的sql只是在取id的时候绕了一下,通过一个子查询的方式获取到id,而不是直接进行获取。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程