mysql 按照时间的先后顺序进行保留最新的唯一数据

想问一下,数据库中有时间列和手机号列,我想只保留最新的数据,而且手机号是唯一的,请问怎么实现啊?我先用order by 排序后再进行disctin进行去重,可是不能保留最新时间的唯一项。

讨论数量: 1

也许你要的是这个,表名和列名自己替换下

delete
from tb_phone
where id in (
    select id from(
        select a.id
        from tb_phone a
        join (
            select max(id) as id, phone, count(id) as num
            from tb_phone
            group by phone
            having num > 1
        ) b 
            on a.phone = b.phone and a.id != b.id
    ) as c
)
3周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!