删除除最后三条记录以外的记录

Neeraj

我有一个log表,我要删除除最后三个记录以外的每个用户的记录。

架构图

DROP TABLE IF EXISTS `log`;
CREATE TABLE `log` (
  `user_id` int(11) DEFAULT NULL,
  `timestamp` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

insert  into `log`(`user_id`,`timestamp`) values (1,1389257013),(1,1389257014),(1,1389257015),(1,1389257016),(1,1389257017),(2,1389257018),(2,1389257019),(2,1389257020),(2,1389257021),(2,1389257022),(3,1389257023),(3,1389257024);

当前表:

id    timestamp
1     1389257013
1     1389257014
1     1389257015
1     1389257016
1     1389257017
2     1389257018
2     1389257019
2     1389257020
2     1389257021
2     1389257022
3     1389257023
3     1389257024

预期表

id    timestamp    
1     1389257015
1     1389257016
1     1389257017
2     1389257020
2     1389257021
2     1389257022
3     1389257023
3     1389257024
Kwelsan

请尝试以下SQL:

DELETE FROM log WHERE find_in_set(
    TIMESTAMP, (
        SELECT group_concat(t3) t4 FROM (
            SELECT 1 AS dummy,
            replace(group_concat(TIMESTAMP ORDER BY TIMESTAMP DESC), concat(SUBSTRING_INDEX(group_concat(TIMESTAMP ORDER BY TIMESTAMP DESC), ',', 3), ','), '') t3
            FROM log
            GROUP BY user_id HAVING count(*) > 3
        ) a GROUP BY dummy
    )
)

SQL小提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Postgresql 删除涉及两个表的记录并将此记录存储在第三条记录中

来自分类Dev

nodejs 在数据库中显示一条记录而不是三条记录

来自分类Dev

从具有唯一标识的重复记录中获取前三条记录

来自分类Dev

在HTML表的三列中显示MySql表的三条记录使用PHP

来自分类Dev

我有3条记录之间的线性关联。如果第二条记录无法保存,我想避免创建第三条记录。还是我应该删除它?

来自分类Dev

如何选择除最后2条以外的所有表记录?

来自分类Dev

如何检索最新的编号 数据库中的第三条记录?

来自分类Dev

删除最后N条记录,实体框架

来自分类Dev

删除最后N条记录,实体框架

来自分类Dev

从表中的分组记录中选择除最后一条记录之外的所有记录

来自分类Dev

如何从两个表中获取第三条中不存在的所有记录

来自分类Dev

使用Linq来查询除一条记录以外的其他记录

来自分类Dev

使用Linq来查询除一条记录以外的其他所有记录

来自分类Dev

根据特定列排序后如何获取除前5条记录以外的所有记录

来自分类Dev

删除表 WordPress 的最后一条记录

来自分类Dev

查询以显示除初始记录以外的记录

来自分类Dev

列出最后5条记录

来自分类Dev

从表中删除特定记录的用户窗体总是在删除特定记录后复制最后一条记录

来自分类Dev

删除数据库中除一条记录外的所有记录

来自分类Dev

TSQL:如果记录为空,如何从查询结果中删除最后一条记录

来自分类Dev

如何通过获取每个组中的最后一条记录来删除重复的记录

来自分类Dev

从表中查找重复记录,并删除除最近日期以外的所有记录

来自分类Dev

如何删除访问表中除最近记录以外的所有记录

来自分类Dev

从表中查找重复记录,并删除除最近日期以外的所有记录

来自分类Dev

jQuery选择器-除最后3条记录外,表的所有行

来自分类Dev

从mongoDB获取最后30条记录

来自分类Dev

MySQL JOIN最后一条记录

来自分类Dev

如何从OrmLite获取最后10条记录?

来自分类Dev

读取文件的最后一条记录

Related 相关文章

  1. 1

    Postgresql 删除涉及两个表的记录并将此记录存储在第三条记录中

  2. 2

    nodejs 在数据库中显示一条记录而不是三条记录

  3. 3

    从具有唯一标识的重复记录中获取前三条记录

  4. 4

    在HTML表的三列中显示MySql表的三条记录使用PHP

  5. 5

    我有3条记录之间的线性关联。如果第二条记录无法保存,我想避免创建第三条记录。还是我应该删除它?

  6. 6

    如何选择除最后2条以外的所有表记录?

  7. 7

    如何检索最新的编号 数据库中的第三条记录?

  8. 8

    删除最后N条记录,实体框架

  9. 9

    删除最后N条记录,实体框架

  10. 10

    从表中的分组记录中选择除最后一条记录之外的所有记录

  11. 11

    如何从两个表中获取第三条中不存在的所有记录

  12. 12

    使用Linq来查询除一条记录以外的其他记录

  13. 13

    使用Linq来查询除一条记录以外的其他所有记录

  14. 14

    根据特定列排序后如何获取除前5条记录以外的所有记录

  15. 15

    删除表 WordPress 的最后一条记录

  16. 16

    查询以显示除初始记录以外的记录

  17. 17

    列出最后5条记录

  18. 18

    从表中删除特定记录的用户窗体总是在删除特定记录后复制最后一条记录

  19. 19

    删除数据库中除一条记录外的所有记录

  20. 20

    TSQL:如果记录为空,如何从查询结果中删除最后一条记录

  21. 21

    如何通过获取每个组中的最后一条记录来删除重复的记录

  22. 22

    从表中查找重复记录,并删除除最近日期以外的所有记录

  23. 23

    如何删除访问表中除最近记录以外的所有记录

  24. 24

    从表中查找重复记录,并删除除最近日期以外的所有记录

  25. 25

    jQuery选择器-除最后3条记录外,表的所有行

  26. 26

    从mongoDB获取最后30条记录

  27. 27

    MySQL JOIN最后一条记录

  28. 28

    如何从OrmLite获取最后10条记录?

  29. 29

    读取文件的最后一条记录

热门标签

归档