解决MySQL删除重复数据时导致的错误
针对MySQL的You can’t specify target table for update in FROM clause错误的解决方法
举例需求:现在user表中有6条数据,删除重复的数据,最后留下 4 李四 5张三 6王五
id | name |
---|---|
1 | 张三 |
2 | 李四 |
3 | 王五 |
4 | 李四 |
5 | 张三 |
6 | 王五 |
1 |
|
首先看上去这条语句是对的,也没啥逻辑问题,但是就是报错了
1 |
|
因为平时在Oracle中这样操作是没有问题的,直接就可以执行成功。查阅相关资料才知道,MySQL不能用同一表中查询的数据作为同一表的更新数据,所以解决方法只能靠中间表来实现
1 |
|
1 |
|
执行成功
id | name |
---|---|
4 | 李四 |
5 | 张三 |
6 | 王五 |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!