MYSQL:如何根据用户名和时间戳删除类似的数据库行

MYSQL: how to remove SIMILAR database rows based on username and timestamp

我有一个用于日志记录的数据库 table。我想搜索 table 以查找同一用户在同一天执行特定操作的所有条目,并且只保留其中一个。

我认为需要使用的列名是: "activity_action" - 寻求的行动是 'Daily Website Access' "user_email" - 在同一天寻找同一用户 "activity_timestamp" - 我想忽略时间,只检查操作是否在同一天

如果您要查找删除语句,MySQL 中提供了一种方法:

delete t
from mytable t
inner join mytable t1
    on  t1.user_email = t.user_email
    and t1.activity_action = t.activity_action
    and date(t1.activity_timestamp) = date(t.activity_timestamp)
    and t1.activity_timestamp < t.activity_timestamp
where t.activity_action =  'Daily Website Access'

这将删除具有所查找 activity_action 的记录,以及具有相同操作和电子邮件的另一条记录,发生在同一天,时间戳更小。换句话说,这会删除重复的 par action/user/day,同时保留最早的。