我正在尝试删除所有不是其名称下最新版本的记录,但显然您无法引用访问您正在同一查询中修改的表。
我试过了,但由于上述原因它不起作用:
DELETE FROM table
WHERE CONCAT(name, version ) NOT IN (
SELECT CONCAT( name, MAX( version ) )
FROM table
GROUP name
)
我该如何解决这个问题?
干杯
最佳答案
Wrap the inner reference in a derived table .
DELETE FROM table
WHERE Concat(name, version) NOT IN (SELECT nv
FROM (SELECT Concat(name, Max(version))
AS nv
FROM table
GROUP BY name) AS derived)
关于mysql - 绕过 DELETE 查询中的自引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4606915/