mysql去掉重复数据只保留一条,以及取分组后的一条数据

时间:2022-09-23 08:39:05

 

最近有一个需求是要我在用户所有发过的短视频中找到每一个用户最新发送的一条短视频网上找了一下感觉挺好用的所以就记录下来

SELECT a.createTime,a.userId FROM short_video_entity a
LEFT JOIN short_video_entity b ON a.userId = b.userId
AND a.createTime < b.createTime
GROUP BY a.createTime, a.userId
HAVING count(b.id) < 1 

这条sql 确实可以达到要求  但是我不清楚它为什么要这样写  a.createTime < b.createTime  在我 看来取最新时间应该是 a.createTime >b.createTime   希望看到这条随笔的大神们留下言解答下这个问题

去掉表中重复记录并且只保留id最小的一条记录(这个是多个字段重复)

DELETE n1  FROM  msg_remind_my n1, msg_remind_my n2   WHERE   n1.id > n2.id

AND n1.type = n2.type  AND  n1.contentId = n2.contentId   AND  n1.remindType = n2.remindType   AND  n1.remindUserId = n2.remindUserId