我试图将此解决方案应用于我在 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脚本会产生循环过程,但是这里我其实没看到有什么相关的——很明显forDELETE
和for的两个选择SELECT
是分离的——引擎必须先做SELECT
一次,然后在WHERE
条件for中使用DELETE
。那么 - 为什么会发生这个错误,我如何才能真正删除我的表?=)