mysql实现分组排序并取组内第一条数据

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