我正在尝试删除所有不是其名称下的最新版本的记录,但显然您无法在同一查询中引用正在修改的表.
我试过这个,但由于上述原因,它不起作用:
DELETE FROM table
WHERE CONCAT(name, version ) NOT IN (
SELECT CONCAT( name, MAX( version ) )
FROM table
GROUP name
)
Run Code Online (Sandbox Code Playgroud)
我怎么能绕过这个?
干杯
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)
Run Code Online (Sandbox Code Playgroud)
delete t1
from table_name1 t1, table_name1 t2
where t1.version < t2.version
and t1.name = t2.name;
Run Code Online (Sandbox Code Playgroud)
//这里需要创建别名