mysql中有一张表用户表user 其中李四是重复数据
id name
1 张三
2 李四
3 李四
4 王五
如何去重实现查询效果为
id name
1 张三
2 李四
4 王五
id为主键,去重之后保留id最小的一条数据
或者可以实现效果为
id name
1 张三
2 李四
3 王五
可不可以实现
SELECT * FROM 表名 group by name
select t1.* from 表名 t1
join
(select name,min(id) as id from 表名 group by 1) t2
on
t1.id = t2.id
;
百度改一下SQL_MODE,去掉only_full_group_by。再做group by 聚合
1055 错误是 SQL_MODE 严格模式的问题,不要简单去掉,最好理解原理再判断应该怎么做,具体可以看我写的这篇教程
select id,name from (select * ,row_number() over (partation by name order by id) as vl from 表) where vl=1