通过单个字段(name)删除:delete from user where id not in
(
select id from
(
select max(id) id from user group by name
) a
);
通过多个字段(name,age)删除:delete from user where id not in
(
select id from
(
select max(id) id from user group by name,age
) a
);
其实差不多啦,不过这么写sql效率很低,欢迎大家有什么高效的写法教给我,谢谢啦!
相关文章
- 删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录
- MySQL之数据库和表的基本操作(建立表、删除表、向表中添加字段)
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
- 在SQL SERVER 的数据库设计期,可以修改表中某个字段的名称或删除这个字段,如何在程序中做到这一点呢,用什么语句?
- MySQL 数据库删除表中重复数据
- mysql删除数据库表中重复数据(根据单个或多个字段)
- mysql数据库 删除某几个字段相同的重复记录并根据另一字段留下一条记录
- mysql 删除单表内多个字段重复的数据
- mysql删除重复的数据,保留一条,根据多个字段判断。以及统计重复数据
- mysql 删除单表内多个字段重复的数据