sql语句实现重复数据只显示一次 ,或者删除重复数据

大家首先会想到:distinct。有如下数据表A:

id    title      grief

1    标题1  简介1 
2    标题2  简介2 
3    标题1  简介3 
4    标题2  简介2

对于title字段,若实现重复数据只显示一条,可用如下sql语句:

select distinct title from A 

但这样返回的只有一个title字段。

扩展:


如果要实现title字段重复数据只显示一条,并且要返回多个字段,使用distinct就不行了。以下sql语句解决以上问题。
select  *  from A where id in (select min(id) from course group by title,grief)   
(这里min也可以改为max) 
对于数据表重复数据只保留一条,以下sql语句可实现。
delete A where   id   not   in( select   max(id)   from   A group   by   title,grief )   
(这里max也可以改为min) 

原文地址:https://www.cnblogs.com/hanshuhe/p/2934025.html