写在前面: 我是 「扬帆向海」,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。
技术是开源的、知识是共享的
。
这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。
用知识改变命运,让我们的家人过上更好的生活
。
在开发中MySQL遇到了这样的一个错误 1093 - You can’t specify target table 'person' for update in FROM clause
,下面我就以力扣的一道题目为例进行分析。
文章目录
-
-
- 一、题目来源
- 二、错误分析
- 三、解决办法
-
一、题目来源
+----+------------------+
| Id | Email |
+----+------------------+
| 1 | john@example.com |
| 2 | bob@example.com |
| 3 | john@example.com |
+----+------------------+
例如,在运行你的查询语句之后,上面的 Person 表应返回以下几行:
+----+------------------+
| Id | Email |
+----+------------------+
| 1 | john@example.com |
| 2 | bob@example.com |
+----+------------------+
提示:
- 执行 SQL 之后,输出是整个 Person 表。
- 使用 delete 语句。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/delete-duplicate-emails
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
二、错误分析
这是因为MySQL不允许同时更新和删除一张表,也就是你不能以一个查询的结果为条件 进行修改或删除
三、解决办法
使用中间表将查询结果再次SELECT即可避免这个报错。
如果觉得文章对你有点帮助,请微信搜索「 程序猿编程
」第一时间阅读!
搬砖的道路上我们一起努力,用双手敲出我们的未来!
由于水平有限,本博客难免有不足,恳请各位大佬不吝赐教!