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 关键字一同使用。

适用场景:可以用来对结果中某一个字段的唯一性进行筛选,而不管其他字段。

例如:

现在要查两个字段,在数据库中字段都是多对多的关系。当我们确定一个一个字段时,就可以利用这个来进行筛选。

select user_id,user_account,name,is_read,message_id
FROM user,message_receive
WHERE message_id = 1615373423
GROUP BY user_account
HAVING count(user_account)=1

上面这段sql表示从两个表中查找数据,对于返回的数据使用

GROUP BY ****
HAVING count(*****)=1

来进行筛选,表示(字段)的数量 (大于等于)数值。 符合这样的数据返回。

注意,如果你写 HAVING count(****)=10。 表示查找某个字段出现10次的数据,返回的整体数据仍然是一条,而不会出现一条。

posted on   longkui  阅读(4176)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示