mysql常用的去重办法distinct和group by差异,有些人可能不知道(本文不考虑性能,只谈数据需求)
数据表area,共3个字段
共3条数据,个中有两条数据name字段重复

哀求:
1、哀求用distinct去重
2、不能用group by分组
3、利用单一字段name去重,name值相同视为重复数据
4、查询结果返回数据表所有字段
下图是要的结果:
这是想要的结果
我们都想想如何实现?
好吧……别想了,实现不了,此路不通,纯属无聊难为人。
对付,当要查询的字段数量包含去重条件字段,并且不相等。请自觉选用group by分组进行去重处理。
distinct去重会将你查询结果,根据列出的所有字段的值全部相同,才算重复。
(1)查询中3个字段:name, id, status
去重条件:3个字段
去重效果(id不同)
(2)查询中去掉id字段:name, status
2个字段(不查id,查询结果中没有字段id)
去重效果(已去重,查询结果无id字段)
group by去重老诚笃实用了group by name分组进行去重
去重字段:name
去重效果(已去重,获取结果全字段)
综上所述:
利用distinct去重,可以针对单个字段或多个字段是否全部相同来进行去重,但是返回字段结果,不能知足哀求(查询字段与去重字段不能单独设置)
利用group by去重,可以针对单个字段或多个字段是否全部相同来进行去重,并且返回字段结果,也能知足哀求(查询字段与去重字段不能单独设置)