mysql实现根据身份证号和人员编号保留时间最小的一条数据,其他的删除
时间: 2024-03-16 21:48:01 浏览: 117
MySQL查询重复数据(删除重复数据保留id最小的一条为唯一数据)
可以通过以下 SQL 语句实现:
```
DELETE FROM table_name
WHERE id NOT IN (
SELECT id FROM (
SELECT id FROM table_name
WHERE (身份证号, 人员编号, 保留时间) IN (
SELECT 身份证号, 人员编号, MIN(保留时间)
FROM table_name
GROUP BY 身份证号, 人员编号
)
) AS temp
)
```
其中,`table_name` 是要操作的表名,`身份证号`、`人员编号` 和 `保留时间` 分别是对应的列名。这个语句会保留每个身份证号和人员编号组合中保留时间最小的一条数据,并删除其他数据。请注意备份数据以避免误操作。
阅读全文