Mysql根据列值删除重复的行,但保留最新的行

Mysql根据列值删除重复的行,但保留最新的行,mysql,Mysql,我有一个包含3个字段phonecall、calldate和checked的表,我希望通过phonecall列值删除重复的行,但不是最新的行 在这个场景中,我想从这个表的第一行删除2行 谢谢你这样说: delete A from TableX A left join TableX B on B.CallDate>A.CallDate and B.PhoneCall=A.PhoneCall where B.PhoneCall is not null 这可能会起作用: delet

我有一个包含3个字段phonecall、calldate和checked的表,我希望通过phonecall列值删除重复的行,但不是最新的行


在这个场景中,我想从这个表的第一行删除2行

谢谢你这样说:

delete A from TableX A
  left join TableX B
    on B.CallDate>A.CallDate and B.PhoneCall=A.PhoneCall
 where B.PhoneCall is not null
这可能会起作用:

delete callLog
from callLog
  inner join (
     select max(CallDate) as lastCallDate, PhoneCall
     from callLog
     group by PhoneCall
     having count(*) > 1) duplic on duplic.PhoneCall = callLog.PhoneCall
where callLog.CallDate < duplic.lastCallDate;

您要删除哪两行?第一个共享表的其他字段中的两行;没有其他领域关于内部连接没有何处?