你认为像这样的查询会在我的软件执行中产生问题吗? 我需要删除所有表,除了最后两组条目,按插入的同一时间分组。
delete from tableA WHERE time not in
(
SELECT time FROM
(select distinct time from tableA order by time desc limit 2
) AS tmptable
);
你有更好的解决方案吗?我正在使用mysql 5.5
答案 0 :(得分:2)
我没有看到您的查询有任何问题,但我更喜欢使用OUTER JOIN/NULL
检查(加上它减轻了对其中一个嵌套子查询的需求):
delete a
from tableA a
left join
(
select distinct time
from tableA
order by time desc
limit 2
) b on a.time = b.time
where b.time is null