【问题标题】:MySQL query for remove items from database, but keep 1 single row per dayMySQL 查询从数据库中删除项目,但每天保留 1 行
【发布时间】:2019-08-12 09:16:05
【问题描述】:

我有一个多行的 mysql 数据库。每天晚上我都会删除除每天 1 行之外的所有行。

例如:

2019-01-01 15:23:24 | 1.5
2019-01-01 13:22:24 | 1.73
2019-01-01 12:26:24 | 1.6
2019-01-02 11:21:25 | 1.25

将是:

2019-01-01 15:23:24 | 1.5
2019-01-02 11:21:25 | 1.25

我可以用 1 个查询来做到这一点吗?

【问题讨论】:

    标签: mysql sql-delete


    【解决方案1】:

    您可以保留每天的最大日期:

    delete from tablename
    where date not in (
      select * from (
        select max(date) 
        from tablename
        group by date(date)
      ) g  
    );
    

    子查询返回每天的最后一个值,因此每隔一行被删除。 请参阅demo
    结果:

    | date                | col  |
    | ------------------- | ---- |
    | 2019-01-01 15:23:24 | 1.5  |
    | 2019-01-02 11:21:25 | 1.25 |
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多