mysql消除重复数据
原文链接:这里
0.前言
消除重复数据分为几种不同的情况,请参考食用
1.使用DISTINCT 关键字。
适用场景:返回的数据有重复的行时,会直接消除掉所有重复的行数据。
例如: 下面这个表,

如果我们执行下面的操作
SELECT DISTINCT message_id FROM message_receive
返回结果如下:

可以看出,返回的数据没有任何一个重复的行。我们继续操作,执行下面的语句
SELECT DISTINCT message_id,content_type FROM message_receive
这次我们查询了两个字段,返回结果如下:

可以看出,没有任何一行是完全一样的。
2.HAVING COUNT 关键字
COUNT(*) 函数返回在给定的选择中被选的行数。配合HAVING 关键字一同使用。
适用场景:可以用来对结果中某一个字段的唯一性进行筛选,而不管其他字段。
例如:
现在要查两个字段,在数据库中字段都是多对多的关系。当我们确定一个一个字段时,就可以利用这个来进行筛选。
上面这段sql表示从两个表中查找数据,对于返回的数据使用
GROUP BY ****
HAVING count(*****)=1
来进行筛选,表示(字段)的数量 (大于等于)数值。 符合这样的数据返回。
注意,如果你写 HAVING count(****)=10。 表示查找某个字段出现10次的数据,返回的整体数据仍然是一条,而不会出现一条。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具