gpt4 book ai didi

mysql - 您不能在 FROM 子句中指定要更新的目标表 'NAME'

转载 作者:可可西里 更新时间:2023-11-01 06:31:02 24 4
gpt4 key购买 nike

我正在尝试申请 this解决我在 MySQL DB 中的表中的数据有重复的问题。我得到这样的错误:

SQL Error [1093] [HY000]: You can't specify target table 'NAME' for update in FROM clause


DELETE NAME FROM NAME
WHERE NAME.id NOT IN
(SELECT MIN(id)
FROM NAME GROUP BY col1, col2)

也尝试过分配别名 - 但没有成功。这里错误的原因是什么?它通常指出 SQL 脚本可以产生循环过程,但在这里我实际上没有看到与此相关的任何内容 - 很明显 DELETESELECT 的两个选择是分离的 -引擎必须首先执行一次SELECT,然后在DELETEWHERE 条件下使用它。那么 - 为什么会发生此错误以及如何真正删除表的重复数据? =)

最佳答案

试试这个可能对你有帮助

DELETE  FROM NAME
WHERE NAME.id NOT IN (
SELECT * FROM (
SELECT MIN(id) FROM NAME GROUP BY col1,col2
) AS p
)

Read more

关于mysql - 您不能在 FROM 子句中指定要更新的目标表 'NAME',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17742214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com