mysql最后十条数据_Mysql 保留最新的10条数据

Mysql每天执行计划,保留最新的10条数据,其余的删除

1、Mysql 保留最新的10条数据

sql语句:

DELETE tb FROM tbname AS tb,(

SELECT id FROM tbname ORDER BY id desc LIMIT 9,1

) AS tmp

WHERE tb.id

2、新建存储过程(Navicat中)

CREATE PROCEDURE test()

BEGIN

DELETE tb FROM testdata AS tb,(

SELECT id FROM testdata ORDER BY id desc LIMIT 9,1

) AS tmp

WHERE tb.id

END;

3、新建事件

3.1 在定义中输入CALL test();

3.2 在计划中设置STARTS和ENDS,我设置的每天一次

19414976200834d0b8e9d370ef1e6bc2.png

常见问题:

若提示“事件计划已关闭。可能是服务器启动未开启启动事件计划的处理。

解决方法:

查看一下MYSQL的系统变量 event_scheduler

show variables like 'event_scheduler ';

打开这个设置

set global event_scheduler=1;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下 SQL 语句删除重复数据保留: ``` DELETE t1 FROM 表名 t1, 表名 t2 WHERE t1.id > t2.id AND t1.字段名 = t2.字段名; ``` 其中,`表名` 为需要删除重复数据的表名,`字段名` 为用于判断重复的字段名,`id` 为表中的主键或唯一标识符。该 SQL 语句会将所有重复数据保留,删除其余重复数据。 ### 回答2: 要删除重复数据保留,可以使用MySQL的DELETE语句和子查询来实现。 首先,可以使用如下的SELECT语句来查询出所有重复的数据: SELECT col1, col2, ..., coln, COUNT(*) AS count FROM table_name GROUP BY col1, col2, ..., coln HAVING COUNT(*) > 1; 这个查询用于找到所有有重复数据的列,并通过GROUP BY和HAVING子句筛选出重复的数据。 接下来,可以使用DELETE语句和子查询来删除重复数据,只保留: DELETE FROM table_name WHERE (col1, col2, ..., coln) NOT IN (SELECT col1, col2, ..., coln FROM table_name GROUP BY col1, col2, ..., coln HAVING COUNT(*) > 1); 这个DELETE语句会删除表中除了第一次出现的重复数据以外的所有重复数据。 注意,在使用这个方法之前,一定要先备份好数据,以免误删数据。 ### 回答3: 要删除MySQL中的重复数据保留,可以使用以下的步骤: 1. 首先,我们需要找出重复的数据。可以使用GROUP BY和HAVING语句来找到重复的数据。例如,假设我们要删除表中的重复email字段,可以使用以下语句: SELECT email, COUNT(*) FROM table_name GROUP BY email HAVING COUNT(*) > 1; 这将返回所有重复的email及其重复的次数。 2. 根据找到的重复数据,我们可以选择保留其中的一,并删除其他重复的数据。可以使用DELETE语句来删除重复数据。例如,假设我们要保留COUNT(*)最大的那数据,可以使用以下语句: DELETE FROM table_name WHERE email IN (SELECT email FROM table_name GROUP BY email HAVING COUNT(*) > 1) AND id NOT IN (SELECT MAX(id) FROM table_name GROUP BY email HAVING COUNT(*) > 1); 这将删除除了COUNT(*)最大的那数据以外的其他重复数据。 3. 最后,我们可以再次运行第一步的查询语句来验证是否已成功删除重复数据。如果查询结果为空,说明已成功删除重复数据保留。 需要注意的是,执行此操作前请务必备份数据库,以防意外数据损失。另外,根据实际情况,可能需要针对具体的表和字段进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值