mysql数据去重

去重可以采用两种方法: DISTINCTGROUP BY

DISTINCT

有如下的一张表:

img

1
select distinct name from A

执行后结果如下:

img

1
select distinct name, id from A

img

这样是同时匹配 nameid,也就是说,只有 name
和 id 都相同才会被去重.

GROUP BY

1
SELECT id FROM t1 GROUP BY t1.id WHERE t1.name = "test_name"

这样可以将 t1 的数据按照 id 来分组,根据 where 条件查询,并返回分组第一条的 id,
如果要返回每个分组里面最大的 id,可以借助 max 函数:

1
SELECT max(id) FROM t1 GROUP BY t1.id WHERE t1.name = "test_name"

需要注意的是,id 的数据类型不能是 varchar类型,最好是int等.

thank u !