【问题标题】:Delete any MySQL records made within ten minutes of another record belonging to the same user删除属于同一用户的另一条记录的十分钟内创建的任何 MySQL 记录
【发布时间】:2019-04-08 10:11:53
【问题描述】:

我有一个 Rails 应用程序表,其中包含 usersprojects 的视图。每条记录都有user_id(bigint,外键)、project_id(bigint,外键)和created_at(日期时间)。

该应用当前每次调用项目的“显示”操作都会记录一次视图,这意味着用户可以(并且确实...)通过重复重新加载页面来增加每个项目的视图计数。

我计划更新控制器,以便在十分钟内仅记录给定用户对给定项目的视图 - 视图的去抖动。

我的问题是如何在 MySQL 中构造一个查询,以删除同一项目中同一用户在前一个记录的十分钟内所做的以前的“重复”记录?有可能吗,还是我只需要在 Ruby 中将其作为迁移或 rake 任务来完成?

【问题讨论】:

    标签: mysql ruby-on-rails mariadb


    【解决方案1】:

    最好从源头解决这个问题(即在重新加载的情况下不为当前用户创建条目)。

    您可以使用 created_at 上的 YEAR()、MONTH()、DAY() 和 MINUTE() 函数来选择或在您的情况下按分钟删除给定用户的同一年/月和日的记录。

    【讨论】:

    • 您好,谢谢您的回答。我要从源头解决问题;我只是想弄清楚如何删除所有已创建的重复项。
    • 完全未经测试,因此请务必进行测试,但类似于以下内容可能会起作用。从项目 p1 内部连接项目 p2 中删除 p1 在哪里 p1.id
    猜你喜欢
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多