sql 删除数据保留最新数据2000条
时间: 2023-12-08 11:04:12 浏览: 73
可以使用如下的 SQL 语句来删除数据表中除最新2000条数据外的所有数据:
```
DELETE FROM table_name
WHERE id NOT IN (
SELECT id
FROM (
SELECT id
FROM table_name
ORDER BY id DESC
LIMIT 2000
) as t
);
```
其中,`table_name` 为要删除数据的表名,`id` 为该表的主键。这条 SQL 语句的意思是,先按照 `id` 降序排列,然后选择前2000条数据的 `id`,最后删除不在这个列表中的所有数据。这样,就可以保留最新的2000条数据了。
相关问题
sql 根据类型删除数据保留最新数据2000条
可以使用以下 SQL 语句来根据类型删除数据保留最新数据2000条:
```
DELETE FROM 表名
WHERE 类型 = '指定类型' AND id NOT IN (
SELECT id FROM (
SELECT id FROM 表名
WHERE 类型 = '指定类型'
ORDER BY 时间 DESC
LIMIT 2000
) t
);
```
其中,表名为要操作的数据库表名,类型为要删除的数据类型,时间为用来排序的时间字段,id 为唯一标识数据的字段。这个 SQL 语句会删除除了最新的2000条数据之外的其他数据。
sql 删除重复数据保留一条
你可以使用以下 SQL 查询来删除重复数据并保留一条:
```sql
DELETE FROM your_table
WHERE column_name NOT IN (
SELECT MIN(column_name)
FROM your_table
GROUP BY column_name
);
```
将 `your_table` 替换为表名,`column_name` 替换为要检查重复的列名。
阅读全文